我是Java新手。 我想输入一个文本文件,并从中创建一个输入的二维数组 像这样
12,242 323,2324
23,4434 23,4534
23,434 56,3434
....
34,434 43,3443
我试过了
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class InputText {
/**
* @param args the command line arguments
* @throws java.io.IOException
*/
public static void main(String[] args) throws IOException {
int i=0;
File file;
file = new File("file.txt");
Scanner read=new Scanner(file);
while (read.hasNextLine()) {
String line=read.nextLine();
System.out.println(line);
}
}
}
给了我输入但是我不能在数组中插入它我尝试了不同的方法,比如拆分它。
有什么建议吗? 对不起,不清楚。我提到的输入是空格分隔的双倍。我给你的格式也是我运行我编写的程序部分后得到的。我在文本文件中看到的是由空格分隔的数字。我试图实施你的建议,但似乎没有任何效果。我真的迷失在这里......
答案 0 :(得分:1)
如果您想将一行分成两个数字,可以使用
string[] numbers = line.split("\\s+");
如果你想用逗号读取双精度
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
...
double d1 = format.parse(numbers[0]).doubleValue();
double d2 = format.parse(numbers[1]).doubleValue();
我个人更喜欢使用扫描仪。在那种情况下,用
创建它Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
Scanner scanner2 = new Scanner(scanner.nextLine()).useLocale(Locale.FRANCE);
if (!scanner2.hasNextDouble()){
System.out.println("Do not have a pair");
continue;
}
double d1 = scanner2.nextDouble();
if (!scanner2.hasNextDouble()){
System.out.println("Do not have a pair");
continue;
}
double d2 = scanner2.nextDouble();
//do something
}
答案 1 :(得分:0)
阅读完行后,你必须再次将字符串拆分为','。拆分字符串需要转换为整数。你可以看到如下:
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class InputText {
/**
* @param args the command line arguments
* @throws java.io.IOException
*/
public static void main(String[] args) throws IOException {
int i = 0;
File file;
file = new File("file.txt");
Scanner read = new Scanner(file);
while (read.hasNextLine()) {
String line = read.nextLine();
String[] numbers = line.split(",");
for (i = 0; i < numbers.lenght; i++) {
String numStr = numbers[i];
String x=numStr.replaceAll("\\s+",""); //eleminate the space in any.
Double num = Double.valueOf(x);
System.out.println(" num is: " + num); //Here you can store the number in array.
}
}
}
}
答案 2 :(得分:0)
尝试使用类似的东西(也添加try catch语句)
String line = "";
br = new BufferedReader(new FileReader("file.txt"));
int i=0;
while ((line = br.readLine()) != null) {
// use comma as separator
String[] lineArray= line.split(",");
for(int j=0;j<lineArray.length;j++){
my2DArray[i][j] = lineArray[j];
}
i++;
}
for(int i=0;i<my2DArray[0].length;i++){
for(int j=0;j<my2DArray[1].length;j++){
System.out.print(my2DArray[i][j] + " ");
}
}