相关疑难解决方法(0)

如何在Java中格式化字符串

原始问题,但我如何格式化这样的字符串:

"{2}的步骤{1}"

通过使用Java替换变量?在C#中很容易.

java string string-formatting

169
推荐指数
7
解决办法
23万
查看次数

java中的字符串替换,类似于速度模板

StringJava中是否有任何替换机制,我可以使用文本传递对象,并在发生时替换字符串.
例如,文本是:

Hello ${user.name},
    Welcome to ${site.name}. 
Run Code Online (Sandbox Code Playgroud)

我拥有的对象是"user""site".我想${}用对象中的等价值替换内部给出的字符串.这与我们替换速度模板中的对象相同.

java string reflection velocity

83
推荐指数
8
解决办法
8万
查看次数

StringBuilder与String考虑替换

在连接大量字符串时,我建议使用StringBuilder如下方法:

StringBuilder someString = new StringBuilder("abc");
someString.append("def");
someString.append("123");
someString.append("moreStuff");
Run Code Online (Sandbox Code Playgroud)

而不是

String someString = "abc";
someString = someString + "def";
someString = someString + "123";
someString = someString + "moreStuff";
Run Code Online (Sandbox Code Playgroud)

这将导致创建相当多的字符串,而不是一个.

现在,我需要做类似的事情,但我没有使用串联,而是使用replaceString 的方法:

String someString = SOME_LARGE_STRING_CONSTANT;
someString = someString.replace("$VARIABLE1", "abc");
someString = someString.replace("$VARIABLE2", "def");
someString = someString.replace("$VARIABLE3", "123");
someString = someString.replace("$VARIABLE4", "moreStuff");
Run Code Online (Sandbox Code Playgroud)

要使用StringBuilder完成同样的事情,我必须这样做,只为一个替换:

someString.replace(someString.indexOf("$VARIABLE1"), someString.indexOf("$VARIABLE1")+10, "abc");
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:"使用String.replace是否更好,并且创建了大量额外的字符串,或者仍然使用StringBuilder,并且有很多冗长的线条,例如上面那个?"

java string stringbuilder replace

32
推荐指数
2
解决办法
3万
查看次数