我有一个程序,我试图从逗号分隔的字符串中取一组数字并将它们放入ArrayList
;但是,我不太清楚该怎么做。到目前为止,我所做的是将String转换为一个字符数组,然后使用以下命令将字符转换为整数:
Character.digit(temp[i], 10)
此示例在for循环中迭代字符串。我们假设"1,2,3,4"
。获取新char数组的第一个元素并将其转换为int。
我的问题是,
"34,2,3,65,125"
。当我需要它作为一个元素时,它们将作为数组的单独元素存储。"-123,45,3,4,-6"
。 请记住,这适用于任何String
参数。
这里有很多条件,我不知道如何解决它们。
答案 0 :(得分:7)
考虑使用
String.split()
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html Integer.parseInt()
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html 关于“任何String参数”,您可以选择:对不是以逗号分隔的数字的字符串进行失败或重新定义任务。这就是编程的本质:你需要定义一切。最简单的方法(也是最安全的方法)是每当你看到意想不到的东西时都会失败。在这种情况下,Java会为你做,所以尽情享受。
答案 1 :(得分:2)
String input = "-12,23,123123";
String[] numbers = input.split(",");
List<Integer> result = new ArrayList<Integer>();
for(String number : numbers){
result.add(Integer.parseInt(number));
}
答案 2 :(得分:2)
使用String.split()函数根据分隔符
在不同的字符串中断开字符串 String input="-123,45,3,4,-6";
String[] vals=input.split(",");
List<Integer> numbers=new ArrayList<Integer>(vals.length);
for(String val:vals) {
numbers.add(Integer.valueOf(val));
}
答案 3 :(得分:1)
首先使用String
拆分输入String.split()
。然后尝试Integer.parseInt()
。
答案 4 :(得分:1)
String testStr = "123,456,789";
String tokens[] = testStr.split(",");
ArrayList<Integer> numList = new ArrayList<Integer>();
for(int i = 0; i < tokens.length; i++)
{
try
{
Integer num = new Integer(tokens[i]);
numList.add(num);
}
catch(NumberFormatException e)
{
//handle exception
}
}
答案 5 :(得分:1)
String input="-123,45,3,4,-6, a";
String[] vals=input.split(",");
List<Integer> numbers=new ArrayList<Integer>(vals.length);
for(String val:vals) {
try {
int a = Integer.valueOf(val);
numbers.add(a);
} catch (NumberFormatException e) {
// TODO: handle exception
}
}
使用此代码。通过使用它,您还可以避免使用非整数值。
答案 6 :(得分:0)
您还可以使用StringTokenizer将字符串拆分为子字符串,然后使用Integer.parseInt将它们转换为整数。