我现在正在编写单元测试,我需要创建一个特定的字符串。
我现在定义了这样的内容:
private final String at = "@:";
private String error, effect, one, two, three, four;
在setUp(@Before)中:
error = RandomStringUtils.randomAlphabetic (3);
one = RandomStringUtils.randomAlphabetic (6);
two = RandomStringUtils.randomAlphabetic (8);
three = RandomStringUtils.randomAlphabetic (2);
four = RandomStringUtils.randomAlphabetic (6);
effect = (error + at + one + at + two + at + three + at + four);
弦乐与弦乐的结合看起来非常难看和业余。有可能以某种方式更有效地使用其他任何东西吗?比如模式?我不知道。感谢您的帮助:)
答案 0 :(得分:10)
为简单起见,您还可以:
String.join(at, error,one, two, three, four);
答案 1 :(得分:7)
您可以使用java内置StringBuilder
StringBuilder sb = new StringBuilder();
sb.append(error);
sb.append(at);
sb.append(one);
...
effect = sb.toString();
答案 2 :(得分:5)
如果" @:"是一个一致的分隔符,并且您使用的是Java 8+,您可能会发现String.join
是您的朋友。这看起来像是:
effect = String.join("@:", error, one, two, three, four);
从您的变量名称中稍微猜一下,但作为一个小背景,以防它有用,如果您想/需要使用Stream,您还可以使用Collectors.joining
,这可能看起来类似的东西:
List<String> stringParts = ...
stringParts.stream()
.collect(Collectors.joining("@:"));
这将加入列表中的所有内容&#34; @:&#34;作为分隔符。您还可以添加可能与error
变量相关的常量前缀和/或后缀,例如:
String error = RandomStringUtils.randomAlphabetic(3);
List<String> stringParts = ...
stringParts.stream()
.collect(Collectors.joining("@:", error, ""));