我正在使用以下格式检索信息的GPS网络服务(由于隐私原因,数字有所改变,但格式未改变):
X: 32 14 08.47S
Y: 140 17 12.82E
我需要做的是将这些转换为十进制坐标(xx.xxxxxxxxx,xx.xxxxxxxxx)。是否有任何简单的Java代码片段可以完成此任务?如果没有,我很高兴看到解释如何用不同语言实现这一目标的资源。
答案 0 :(得分:2)
如果保证将度数,分钟和秒分隔为单个空格,您可以执行一些简单的操作
String line = read_a_line_from_file();
String[] tokens = line.split(" ");
这将离开你
tokens[0] = "X:"
tokens[1] = "32"
tokens[2] = "14"
tokens[3] = "08.47S"
然后您可以Double.parseDouble()
tokens[0]
之后获得数字度,分钟和秒,然后将它们组合起来获得小数度数。当然,对于tokens[3]
,您必须在进行解析之前剥离最终的N / S / E / W字符。
另一个更优雅的可能性可能是利用MessageFormat
及其子类的实例可用于解析给定格式的字符串以及格式化此类字符串这一事实。