我正在尝试在文本文件中查找特定字符串。 这是我使用 [Java]
List
s:
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class constantb {
static String filePath = "C:myiflepath";
public static Double findDouble(String name) throws IOException{
String value;
Scanner constScanner = new Scanner(filePath);
List<String> list=new ArrayList<>();
while(constScanner.hasNextLine()){
list.add(constScanner.nextLine());
}
value = list.get(list.indexOf(name)+1);
System.out.println(value);
constScanner.close();
return Double.parseDouble(value);
}
}
当我运行这个时,我遇到了
NumberFormatException
问题。
在文本文件中,它搜索一个名称,文件中该名称的正下方是我想要以双精度形式返回的内容。
这是文本文件:
help please:
double hi
9
我尝试删除文件的列表部分:
import java.util.Scanner;
public class constantc{
static String filePath = "C:myfilepath";
public static Double findDouble(String name){
Scanner scanner = new Scanner(filePath);
String value = scanner.nextLine();
while(scanner.hasNextLine()){
value = scanner.nextLine();
if(name == scanner.nextLine()){
scanner.nextLine();
value = scanner.nextLine();
break;
}else{
scanner.nextLine();
}
}
scanner.close();
return Double.parseDouble(value);
}
}
这不起作用,因为我遇到了同样的错误。
您不是在扫描文件,而是在扫描字符串“C:myiflepath”。 您需要创建一个文件句柄并扫描它。 按如下方式更改您的第一个代码示例:
导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.List; 导入 java.util.Scanner;
公共类常量b { 静态字符串文件路径 = "C:myiflepath";
public static Double findDouble(String name) throws IOException{
String value;
File file = new File(filePath); // added
Scanner constScanner = new Scanner(file); // changed
List<String> list=new ArrayList<>();
while(constScanner.hasNextLine()){
list.add(constScanner.nextLine());
}
value = list.get(list.indexOf(name)+1);
System.out.println(value);
constScanner.close();
return Double.parseDouble(value);
}
}