java - 将字符串格式的数字转换为整数格式(Java)
问题描述
我有一个小问题:
import java.io.*;
public class Ninteri {
public static void main(String[] args) throws IOException {
FileReader f = new FileReader("/Users/MyUser/Desktop/reader.txt");
BufferedReader b = new BufferedReader(f);
String s;
int x;
while (true) {
s = b.readLine();
if (s == null) {
break;
}
x = Integer.parseInt(s);
System.out.println(x);
}
}
}
例外:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1 2 3 4 5 6 7 8 "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at stream.Ninteri.main(Ninteri.java:22)
解决方案
1 2 3 4 5 6 7 8 不是单个数字,因此不能用整数表示。
在 split 产生的字符串数组上使用 for 块来单独转换它们中的每一个。
for(String a: s.split("\\s")) {
int x = Integer.parseInt(a);
System.out.println(x);
}
推荐阅读
- linux - 让 OpenCV 头文件在 Linux 中安装时正常工作
- python - 将蓝色瓷砖添加到 matplotlib 图(背景)
- python - 在python中对集合进行排序
- pulp - 纸浆中的二维决策变量
- javascript - 检查范围集合是否在另一个范围内并覆盖另一个范围
- spring-cloud-dataflow - 使用参数调度组合任务
- r - xaringan幻灯片中图形的字体大小太小
- android - 为什么在 Main App 的 Merged AndroidManifest 中找不到我的 Android 模块 Activity?
- c# - 如何在对子键进行分组时使用 LINQ 加入两个父/子对象列表
- excel - 删除组中的最后一行