假设我有一个字符串:
String pers = "PROCESS / PROGRAM / PROJECT / SERVICE DELIVERY";
当字符串的长度达到30时,如何换行?因此它将导致:
过程/程序/项目/
服务交付
我的尝试
String pers = "PROCESS / PROGRAM / PROJECT / SERVICE DELIVERY";
if (pers.length() > 30) {
pers = pers.substring(0, 30) + "\n" + pers.substring(30, pers.length());
}
它在浏览器的控制台上返回Uncaught SyntaxError: Invalid or unexpected token
。请帮忙。
答案 0 :(得分:1)
您可以使用类似的东西:
String pers = "PROCESS / PROGRAM / PROJECT / SERVICE DELIVERY";
String formattedString = pers.replaceAll("(.{30})", "$1\n");
以上内容应将30个字符替换为匹配的字符,再加上换行符。
答案 1 :(得分:0)
使用StringBuilder 可能是一种更轻松的字符串操作方式。您也可以使用String Builder尝试此操作。
String s = "A very long string containing " +
"many many words and characters. " +
"Newlines will be entered at spaces.";
StringBuilder sb = new StringBuilder(s);
int i = 0;
while ((i = sb.indexOf(" ", i + 30)) != -1) {
sb.replace(i, i + 1, "\n");
}
System.out.println(sb.toString());
如果您了解Regular Expressions,那么这是最好和最简单的方法:-
String str = "....";
String parsedStr = str.replaceAll("(.{30})", "$1\n");
这将用相同的30个字符替换每30个字符,并在末尾添加新行。
答案 2 :(得分:0)
尝试这个:
public ArrayList gecStringFromStringByNumberOfChars(String str, int numberOfChars) {
int numberOfLine = str.length() / numberOfChars;
int offsets = str.length() % numberOfChars;
ArrayList<String> result = new ArrayList<>();
for (int i = 0; i < numberOfLine; i++) {
result.add(str.substring(i * numberOfChars, i * numberOfChars + numberOfChars));
}
if (offsets > 0) {
result.add(str.substring(str.length() - offsets, str.length()));
}
return result;
}
在代码中将其称为gecStringFromStringByNumberOfChars(pers,30)