[英]ArrayList not printing all elements
我編寫了一個程序,該程序需要用戶輸入的字符串。 (示例: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}
我對此比較陌生。 有什么幫助嗎? 提前致謝..
您遇到的問題是缺少第0個元素的for循環條件。 因此,您的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]);
}
從1-1開始並結束> = 0。 字符串從索引0到長度1
該數組以索引0開頭,因此您的for循環必須為:
對於(int j = l; j> = 0; j--){
盡管您可以使用“ split”簡化整個過程:
String[] nums = txt.split("-");
ArrayList<String> unkey = Arrays.asList(nums);
更改>
到>=
這樣你就不會離開了第1個要素:
for (int j = l; j >= 0; j--)
加
unkey.add(k);
循環后。 您僅在現在找到“-”時才添加數字。
for (int j = l; j > 0; j--)
該行應更改為
for(int j=l-1; j>=0; j--)
對於您的特定示例(175-24-56-5)以(0-1-2-3)而不是(1-2-3-4)的索引順序存儲。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.