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