我有这个文本文件,其中包含地图上不同点的纬度和经度值。
如何将弦乐分成纬度和经度?与其他分隔符(如空格或制表符等)一起执行这些类型的事物的一般方法是什么? 样本文件:
28.515046280572285,77.38258838653564
28.51430151808072,77.38336086273193
28.513566177802456,77.38413333892822
28.512830832397192,77.38490581512451
28.51208605426073,77.3856782913208
28.511341270865113,77.38645076751709
这是我用来从文件中读取的代码:
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");
}
答案 0 :(得分:27)
您可以使用String.split()
方法:
String[] tokens = str.split(",");
之后,使用Double.parseDouble()
方法将字符串值解析为double。
double latitude = Double.parseDouble(tokens[0]);
double longitude = Double.parseDouble(tokens[1]);
其他包装类中也存在类似的解析方法 - Integer
,Boolean
等。
答案 1 :(得分:4)
使用OpenCSV获得可靠性。拆分不应该用于这类事情。 这是我自己的程序片段,非常简单。我检查是否指定了分隔符,如果是,则使用此分隔符,如果不是,则使用OpenCSV中的默认值(逗号)。然后我读了标题和字段
CSVReader reader = null;
try {
if (delimiter > 0) {
reader = new CSVReader(new FileReader(this.csvFile), this.delimiter);
}
else {
reader = new CSVReader(new FileReader(this.csvFile));
}
// these should be the header fields
header = reader.readNext();
while ((fields = reader.readNext()) != null) {
// more code
}
catch (IOException e) {
System.err.println(e.getMessage());
}
答案 2 :(得分:1)
要用逗号分隔字符串(,),请使用str.split(",")
并使用标签str.split("\\t")
try {
BufferedReader in = new BufferedReader(
new FileReader("G:\\RoutePPAdvant2.txt"));
String str;
while ((str = in.readLine())!= null) {
String[] ar=str.split(",");
...
}
in.close();
} catch (IOException e) {
System.out.println("File Read Error");
}
答案 3 :(得分:0)
ng-pattern="/^[\w -!@#$%^&\*()\+]*$/" />
正在显示
//lat=3434&lon=yy38&rd=1.0&|
答案 4 :(得分:0)
您也可以使用java.util.Scanner类。
private static void readFileWithScanner() {
File file = new File("path/to/your/file/file.txt");
Scanner scan = null;
try {
scan = new Scanner(file);
while (scan.hasNextLine()) {
String line = scan.nextLine();
String[] lineArray = line.split(",");
// do something with lineArray, such as instantiate an object
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
scan.close();
}
}