我想将a
和b
字符串数组附加到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("."));
答案 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());