将String数组添加到ArrayList中

时间:2014-12-17 10:24:01

标签: java arrays string split

我想将ab字符串数组附加到arrayList。但"1.0"必须"1"使用拆分。 Split方法返回String [],因此arrayList add方法不能像这样工作。 你能建议其他任何方式吗?

String[] a = {"1.0", "2", "3"};
String[] b = {"2.3", "1.0","1"};

ArrayList<String> arrayList = new ArrayList<String>();

arrayList.add(a[0].split("."));

7 个答案:

答案 0 :(得分:6)

arrayList.add(a[0].split("\\.")[0]);

答案 1 :(得分:2)

应如下

arrayList.add(a[0].split("\\.")[0]);

答案 2 :(得分:2)

Split方法返回一个数组。您必须访问他的位置才能获得该号码。

arrayList.add(a[0].split("\\.")[0]);

您还可以使用子字符串方法:

arrayList.add(a[0].substring(0, 1));

答案 3 :(得分:1)

像这样访问该数组的第一个元素:

for (int i = 0; i < a.length; i++) {
    if (a[i].contains("."))
        arrayList.add(a[i].split("\\.")[0]);
    else
        arrayList.add(a[i]);
}

答案 4 :(得分:0)

为什么拆分它?只需使用replaceAll(),它就会更高效,因为它不会创建一个字符串数组。

public static void main(String[] args) {
    String[] a = { "1.7", "2", "3" };
    List<String> arrayList = new ArrayList<String>();
    for (int i = 0; i < a.length; i++) {

        arrayList.add(a[i].replaceFirst("\\..*", "")); // escape the . (match it as a literal), then followed by anything any number of times.
    }
    System.out.println(arrayList);

}

O/P :
[1, 2, 3]

答案 5 :(得分:0)

这对我来说很合适:arrayList.add(a[0].split("\\.")[0]);

答案 6 :(得分:0)

如果您使用Java 8,

String[] a = {"1.0", "2", "3"};

List<String> list = Arrays.stream(a).map(s -> s.split("\\.")[0]).collect(Collectors.toList());

// OR

List<String> list2 = Arrays.stream(a).map(s -> {
  int dotIndex = s.indexOf(".");
  return dotIndex < 0 ? s : s.substring(0, dotIndex);
}).collect(Collectors.toList());