簡體   English   中英

如何從逗號分隔的文本中獲取整數

[英]how can I get the integers from a comma-delimited text

我有一個文本 stream 只包含整數,每個整數用逗號分隔。 這是我所擁有的一個例子:

String text="143,136,159,140";

我需要一個一個地提取每個數字。 我試過類似的東西。

int placeHolder=0;
for(int i=0;i<text.length();i++) {
    if(text.charAt(i)==',') 
    {
        System.out.println(text.substring(placeHolder,i));
        placeHolder=i+1;
    }
}

output 必須是這樣的:

143
136
159
140

但我得到了這個:

143
136
159

我無法獲得最后一個。我做錯了什么

您的代碼不打印最后一個數字,因為您僅在找到時打印, 所以對於最后一個數字,你什么都不做。 您需要在 for 循環之后添加此行以打印最后一個數字

System.out.println(text.substring(placeHolder));

相反,您可以嘗試這種方式在循環內打印

int placeHolder=0;
for(int i=0;i<text.length();i++) {
    if(i == text.length()-1 || text.charAt(i+1)==',' ) 
    {
        System.out.println(text.substring(placeHolder,i+1));
        placeHolder=i+2;
    }

}

或者你可以使用.split()

String[] nums = text.split(",");
for (String num : nums) {
    System.out.println(num);
}

您可以像這樣使用 split(",") :

    String[] numbers = text.split(",");
    for (String number : numbers) {
        System.out.println(number);
    }

使用流,我們可以嘗試:

String text = "143,136,159,140";
List<Integer> nums = Arrays.stream(text.split(","))
                            .map(Integer::valueOf)
                            .collect(Collectors.toList());

因為,代碼會檢查“,”並在其前面打印 integer。 但是最后一個integer后面沒有',',所以沒有打印出來。 相反,使用text.split(",");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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