我有一个字符串:
str = "Hello there"
我正在移除空白:
String[] parts = str.split("\\s+");
创建一个列表并用部分填充它:
List<String> theParts = new ArrayList<String>();
for (int i = 0; i < parts.length; i++) {
theParts.add(parts[i]);
}
List的大小是2.现在,我想增加它的大小,以便与另一个列表的大小相同。
假设另一个列表的大小为3。 所以,我查一下:
if (otherList.size() > theParts.size()) {
然后,我想更改theParts
列表,以便在它的各个部分之间包含一个空格(显示另一个列表有多大的数字)。
所以,我希望theParts
成为(在每个奇数位置添加一个空格):
theParts[0] = "Hello"
theParts[1] = " "
theParts[2] = "there"
我不确定列表是否会发生这种情况,但我想不出另一种解决方案。
或使用类似连接的东西(不起作用,只是想使用这样的东西):
if (otherList.size() > theParts.size()) {
for (int i = 0; i < otherList.size(); i++) {
if (i%2 !=0) {
String.join(" ", theParts);
}
}
}
答案 0 :(得分:1)
只需在填充列表时插入空格:
List<String> theParts = new ArrayList<>(2 * parts.length - 1);
for (int i = 0; i < parts.length; i++) {
if (i > 0) theParts.add(" ");
theParts.add(parts[i]);
}
答案 1 :(得分:1)
您可以使用word break
正则表达式:
public void test() throws Exception {
String str = "Hello there";
List<String> strings = Arrays.asList(str.split("\\b"));
for ( String s : strings ) {
System.out.println("'"+s+"'");
}
}
这将保留所有空间。
'你好'
''
'有'
答案 2 :(得分:-1)
for(String dis : theParts){
newParts.add(dis);//'newPart is another list '
String last = parts[parts.length -2]; // until new list read last element
if(!last.equals(dis)){
newParts.add(" ");
}if(last.equals(dis)){
newParts.add(" ");
}
}