我有一个动态字符串,类似于"经度(141.355642453456(纬度(532.892392(",经度和纬度可以在位置不同时更改。
我的问题是如何获得经度数字并将其设置为字符串经度?以及如何获取纬度编号并将其设置为字符串纬度?
这是一个简单的解决方案:
class Scratch {
public static void main(String[] args) {
String input = "Longitude (141.35642453456) Latitude (532.892392)";
String s = input.replaceAll("[^0-9.\s]", "");
// 141.35642453456 532.892392
System.out.println(s);
String trim = s.trim();
System.out.println(trim);
String[] split = trim.split("\s+");
String longitude = split[0];
String latitude = split[1];
System.out.println(longitude);
System.out.println(latitude);
}
}
对于静态使用,您可以简单地使用以下命令获取子字符串:-
String lonlat = "Longitude (141.35642453456) Latitude (532.892392)";
String longitude = lonlat.substring(lonlat.indexOf("(") + 1, lonlat.indexOf(")"));
String latitude = lonlat.substring(lonlat.lastIndexOf("(") + 1, lonlat.lastIndexOf(")"));
或者你可以更动态地进行,以获得更多的值
String example = "Longitude (141.35642453456) Latitude (532.892392)";
Matcher m = Pattern.compile("\(([^)]+)\)").matcher(example);
ArrayList<String> latLonng = new ArrayList<>();
while (m.find()) {
System.out.println(m.group(1));
latLonng.add(m.group(1));
}
String longitude = latLonng.get(0);
String latitude = latLonng.get(1);