Java数组拆分字符串

时间:2013-11-20 02:32:16

标签: java arrays string

我有一个数组,每个元素都包含第一个和第二个名称,

 eg array[0] = bob dylan
    array[1] = johny cash

我想获取这些名称,拆分它们,并将第一个名称分配给新数组的元素[0],将姓氏分配给新数组的元素[1],

  eg newArray[0] = bob
     newArray[1] = dylon
     newArray[2] = johny
     newArray[3] = cash

到目前为止我在这里:

  String name;
  for( int i = 0; i < array.length; i++ ){
        System.out.println( "Enter the singers First name and Surname:" );
        name = s.nextLine();
        array[ i ] = name;
    }

我已经准备好了两个数组,但我不确定是否需要获取数组元素并将它们分配给一个字符串1,然后将它们拆分并将它们放入一个新数组中,或者也许是一种方法查看字符串[]的每个元素并将它们拆分并分配给新数组,而无需使用单独的字符串。非常感谢

2 个答案:

答案 0 :(得分:1)

在apache常用语言中使用StringUtils.join方法。

String[] newArray = StringUtils.join(array," ").split("\\s+");

答案 1 :(得分:1)

使用String.split()和Java Collections包的组合来处理未知的数组大小。

String[] names = new String[] {"bob dylan", "johny cash"};

List<String> splitNames = new ArrayList<>();
for (String name : names) {
    splitNames.addAll(Arrays.asList(name.split(" ")));
}

从这里开始,您可以遍历String数组中的每个名称,并根据正则表达式(例如空格)将其拆分。然后,您可以将结果添加到List的{​​{1}},其中包含:

Strings

通过使用集合,您不需要知道名称"bob", "dylan", "johny", "cash" 数组的大小,并且可以处理名称没有多个部分的情况。

如果您需要将String转换回数组:

List