gpt4 book ai didi

Java通过命令行从文件读取字符串作为 float 输入

转载 作者:行者123 更新时间:2023-12-01 13:21:01 25 4
gpt4 key购买 nike

我必须从第一个String为N的文件中读取字符串,然后将其转换为Integer以进行循环for从 0 到 N,每次从文件中读取另一个字符串,然后将读取的每一行转换为 float,如下所示:

文件名称:test.txt 包含以下内容:
4
1.21
1.31
1.21
1.32

Java 代码

public class lpa2 {

public static void main(String[] args) throws IOException {
// TODO Auto-generated constructor stub
String line;int n;
while((line = nextLine())!=null){
n = Integer.parseInt(line);
float v[] = new float[n];
for(int i = 0;i<n;i++){
String temp = readln();
v[i] = Float.parseFloat(temp);
}
for(float f:v)
System.out.println(f);
}



}
public static String readln() throws IOException{
BufferedReader bi = new BufferedReader(new InputStreamReader(System.in));
return bi.readLine();

}

}

当我像这样使用命令行时:

javac -nowarn lpa2.java

然后

java lpa2 < test.txt

使用文件作为输入,出现以下错误

java.lang.NumberFormatException: For input string: "{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at lpa2.main(lpa2.java:15)

如果我尝试使用 eclipse 来完成它,它会完美地工作......

我该如何解决这个问题?我使用我创建的 readln() 代替 Scanner,因为我需要一个更快的输入读取器,即使我尝试使用 Scanner,我也会遇到相同的错误...有什么方法可以解决这个问题吗?

谢谢...

最佳答案

您的文件“test.txt”保存为 rtf 文件 - 我猜您是从 Word 或类似的文字处理程序保存的?如果您在文本编辑器(例如记事本)中打开该文件,您会发现它不包含您期望的内容。

关于Java通过命令行从文件读取字符串作为 float 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com