我一直在尝试用字符分割字符串并将每个分割值存储在数组中。 在C#中,可以通过在Split()之后调用.ToArray()方法来完成,但是这种方法显然不会在Java中退出。所以我一直在尝试这样做(rs是一个字符串列表,元素用#分隔):
String t[] = new String[10];
for (int i = 0; i < rs.size(); i++) {
t = null;
t = rs.get(i).split("#");
}
但整个分割线传递给数组的索引,如:
String x = "Hello#World" -> t[0] = "Hello World" (The string is split in one line, so the array will have only one index of 0)
我的问题是如何将每个spit元素存储在数组的索引中,如:
t[0] = "Hello"
t[1] = "World"
答案 0 :(得分:1)
尝试这种方式:
String string = "Hello#World"
String[] parts = string.split("#");
String part1 = parts[0]; // Hello
String part2 = parts[1]; // World
如果字符串包含#(在这种情况下),请事先测试,只需使用String#contains()。
if (string.contains("#")) {
// Split it.
} else {
throw new IllegalArgumentException(message);
}
答案 1 :(得分:1)
听起来你试图遍历列表,拆分它们然后将数组一起添加?您定义的.split方法的问题正是split方法的作用。
ArrayList<String> rs = new ArrayList<>();
rs.add("Hello#World");
rs.add("Foo#Bar#Beckom");
String [] t = new String[0];
for(int i=0;i<rs.size();i++) {
String [] newT = rs.get(i).split("#");
String [] result = new String[newT.length+t.length];
System.arraycopy(t, 0, result, 0, t.length);
System.arraycopy(newT, 0, result, t.length, newT.length);
t = result;
}
for(int i=0;i<t.length;i++) {
System.out.println(t[i]);
}
工作只是找到输出是:
Hello
World
Foo
Bar
Beckom
答案 2 :(得分:1)
public class Test {
public static void main(String[] args) {
String hw = "Hello#World";
String[] splitHW = hw.split("#");
for(String s: splitHW){
System.out.println(s);
}
}
}
这为我产生了以下输出:
Hello
World
答案 3 :(得分:0)
为什么在问题已经在java中解决时使用循环? 试试这个
String x = "Hello#World";
String[] array = x.split("#", -1);
System.out.println(array[0]+" "+array[1]);