拆分字符串到数组

时间:2013-09-14 21:57:59

标签: java

我一直在尝试用字符分割字符串并将每个分割值存储在数组中。 在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"

4 个答案:

答案 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]);