我编写了一个程序,该程序接受用户输入的字符串。 (例如:175-24-56-5) 该程序获取该字符串并将其放入 ArrayList 中。我遇到的问题是,当我尝试打印 ArrayList 时,最后一个数字(应该在 ArrayList 中)没有打印。
这是我的该方法的代码:
public void dc(String txt) {
ArrayList<String> unkey = new ArrayList<String>();
int l = txt.length();
int x = 0;
String xx = "";
String k = "";
for (int j = l; j > 0; j--) {
xx = Character.toString(txt.charAt(x));
System.out.println(xx);
if (xx.equals("-")) {
unkey.add(k);
k = "";
} else {
k += xx;
}
x++;
}
System.out.println(l);
System.out.println(unkey);
System.out.println(x);
}
应该已经打印了
{175, 24, 56, 5}
但它只打印
{175, 24, 56}
我对此还比较陌生。有什么帮助吗?提前致谢..
最佳答案
您的问题在于 for 循环条件,您缺少第 0 个元素。所以你的for循环条件应该是>= 0
并以l-1开始
您可以使用以下内容,而不是逐个字符地解析字符串:
String[] numbers = txt.split("-");//Using List<String> stringList = Arrays.asList(number); you can convert to list.
for (int i =0; i< numbers.length(); i++) {
System.out.println(numbers[i]);
}
关于java - ArrayList不打印所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174917/