Java 从.txt文件中读取字符串,然后将其转换为整数
我试图从文本文件中读取一些数据,其格式如下:Java 从.txt文件中读取字符串,然后将其转换为整数,java,Java,我试图从文本文件中读取一些数据,其格式如下: 10 1 s q 代码如下: public static void main(String[] args) { String line = null; int[] b= new int[10]; int i = 0; try { BufferedReader bf = new BufferedReader(new FileReader("C:\\myFil
10
1
s
q
代码如下:
public static void main(String[] args) {
String line = null;
int[] b= new int[10];
int i = 0;
try {
BufferedReader bf = new BufferedReader(new FileReader("C:\\myFile.txt"));
while ((line = bf.readLine()) != null) {
b[i] = Integer.parseInt(line);
i++;
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
这b[i]=Integer.parseInt(行)代码>轻松读取文件中的第一行是“10”,第二行是“1”,但对于第三行,编译器给出以下错误
Exception in thread "main" java.lang.NumberFormatException: For input string: "s"
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 test.Main.main(Main.java:41)
我需要将字符串“s”和“H”转换为整数值,然后将其存储到整数类型的数组b中。如果您只有一个字符,则此操作应该有效:
char c = b[i].charAt(0);
int x = c - 48;
如果您只有一个字符,则此操作应该有效:
char c = b[i].charAt(0);
int x = c - 48;
首先检查字符串是否包含字母或数字
if(line.matches("[a-zA-Z]+"))
int a=(int)line.charAt(0);
else if(line.matches("[0-9]+"))
int a=Integer.parseInt(line);
首先检查字符串是否包含字母或数字
if(line.matches("[a-zA-Z]+"))
int a=(int)line.charAt(0);
else if(line.matches("[0-9]+"))
int a=Integer.parseInt(line);
您可以将文本文件转换为字节数组,然后将此数组转换为int数组
public static void Do()
{
try {
InputStream in;
in = new FileInputStream("a.txt");
byte[] array = new byte[in.available()];
in.read(array);
int[] array2 = new int[array.length];
for (int i = 0 ; i<array.length ; i++)
{
array2[i] = array[i];
System.out.println(array2[i]+"");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publicstaticvoiddo()
{
试一试{
输入流输入;
in=新文件输入流(“a.txt”);
字节[]数组=新字节[in.available()];
in.read(数组);
int[]array2=新的int[array.length];
对于(int i=0;i您可以将文本文件转换为字节数组,然后将此数组转换为int数组
public static void Do()
{
try {
InputStream in;
in = new FileInputStream("a.txt");
byte[] array = new byte[in.available()];
in.read(array);
int[] array2 = new int[array.length];
for (int i = 0 ; i<array.length ; i++)
{
array2[i] = array[i];
System.out.println(array2[i]+"");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publicstaticvoiddo()
{
试一试{
输入流输入;
in=新文件输入流(“a.txt”);
字节[]数组=新字节[in.available()];
in.read(数组);
int[]array2=新的int[array.length];
对于(int i=0;i您必须从字符而非46中减去48。ASCII值为0时为48。您必须从字符而非46中减去48。ASCII值为0时为48。您希望将字符存储到哪种整数值?对应的ASCII或对其建立哈希?您希望将字符存储到哪种整数值?对应的ASCII还是针对它们构建哈希?