Java NumberFormatException错误
嘿,伙计们,这是一段代码,我试图让java读取一个文本文件。我有一些浮点值,我想让程序读取,但它抛出了一个数字格式异常。文本文件“h.txt”是一个用ANSI编码的记事本文件Java NumberFormatException错误,java,exception,error-handling,exception-handling,Java,Exception,Error Handling,Exception Handling,嘿,伙计们,这是一段代码,我试图让java读取一个文本文件。我有一些浮点值,我想让程序读取,但它抛出了一个数字格式异常。文本文件“h.txt”是一个用ANSI编码的记事本文件 package javaapplication1; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileInputStream; imp
package javaapplication1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.text.NumberFormat;
import java.util.Locale;
import java.lang.*;
public class JavaApplication1 {
int[][] adj=new int[50][50];
String line;
public JavaApplication1(int[][] adj) {
// TODO Auto-generated constructor stub
this.adj=adj;
}
public void fileinput2() {
try {
BufferedReader file=new BufferedReader(new FileReader("h.txt"));
try {
while((line=file.readLine())!=null){
String[] s=line.split("\t+")
for(int i=0;i<s.length;i++)
{
float x=Float.valueOf(s[i].trim());
System.out.print(x+" ");
}
System.out.println();
}
} catch (NumberFormatException | IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
{
int[][] adj=new int[50][50];
JavaApplication1 m=new JavaApplication1(adj);
m.fileinput2();
}
}
}
}
Java给了我一个NumberFormatException:-
java.lang.NumberFormatException: For input string: "0.25"
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 javaapplication1.JavaApplication1.fileinput2(JavaApplication1.java:35)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:70)
请帮助我。谢谢:)将您的
拆分行更改为:
String[] s = line.split(" ");
并将循环的更改为:
for (String string : s) {
if (!string.isEmpty()) {
float x = Float.parseFloat(string);
System.out.print(x + " ");
}
}
将split
行更改为:
String[] s = line.split(" ");
并将循环的更改为:
for (String string : s) {
if (!string.isEmpty()) {
float x = Float.parseFloat(string);
System.out.print(x + " ");
}
}
不是有效的整数值,因此无法分析使用的值
适当的数据类型如。根据您的要求,双倍或浮动
i、 e.Float.parseFloat(变量)
不是有效的整数值,因此无法分析使用的值
适当的数据类型如。根据您的要求,双倍或浮动
i、 e.Float.parseFloat(variable)
您确定0.25 3由制表符而不是空格分隔吗?您看不到这里的问题吗?在stacktrace Integer.parseInt()中,问题是我们不知道代码中的第35行实际上是什么,您确定0.25 3由制表符而不是空格分隔吗?您看不到这里的问题吗?在stacktrace Integer.parseInt()中,问题是我们不知道代码中的第35行实际是什么,