簡體   English   中英

ArrayList不打印所有元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM