如何从Java中的文本文件中读取逗号分隔值?

ris*_*iag 7 java string io

我有这个文本文件,其中包含地图上不同点的纬度和经度值.

我如何将我的弦乐分成纬度和经度?与其他分隔符(如空格或制表符等)一起执行这些类型的事物的一般方法是什么?样本文件:

28.515046280572285,77.38258838653564
28.51430151808072,77.38336086273193
28.513566177802456,77.38413333892822
28.512830832397192,77.38490581512451
28.51208605426073,77.3856782913208
28.511341270865113,77.38645076751709
Run Code Online (Sandbox Code Playgroud)

这是我用来从文件中读取的代码:

try(BufferedReader in = new BufferedReader(new FileReader("C:\\test.txt"))) {
    String str;
    while ((str = in.readLine()) != null) {
        System.out.println(str);
    }
}
catch (IOException e) {
    System.out.println("File Read Error");
}
Run Code Online (Sandbox Code Playgroud)

ada*_*ost 27

您可以使用以下String.split()方法:

String[] tokens = str.split(",");
Run Code Online (Sandbox Code Playgroud)

之后,使用Double.parseDouble()方法将字符串值解析为double.

double latitude = Double.parseDouble(tokens[0]);
double longitude = Double.parseDouble(tokens[1]);
Run Code Online (Sandbox Code Playgroud)

类似的解析方法在其他包装类也存在- Integer,Boolean等等.

  • @ user1425223请注意`String.split`采用正则表达式,如果你想确保没有任何有趣的事情发生(比如`.`或`|`),你可以先通过`Pattern.quote()`:`str传递分隔符. split(Pattern.quote("."))`(或手动转义) (6认同)