簡體   English   中英

如何使用自定義模式在Java中拆分String

[英]How can i split String in java with custom pattern

我正在嘗試使用String.split("[,\\\\:]");從此字符串獲取位置數據String.split("[,\\\\:]");

String location = "$,lat:27.980194,lng:46.090199,speed:0.48,fix:1,sats:6,";
String[] str = location.split("[,\\:]");

我如何獲得這樣的數據。

str[0] = 27.980194
str[1] = 46.090199
str[2] = 0.48
str[3] = 1
str[4] = 6

感謝您的任何幫助!

如果只想保留數字(包括點分隔符),則可以使用:

String[] str = location.split("[^\\d\\.]+");

您將需要忽略數組中的第一個元素為空字符串。

僅在數據名稱不包含數字或點的情況下才有效。

快速與骯臟:

String location = "$,lat:27.980194,lng:46.090199,speed:0.48,fix:1,sats:6,";
     List<String> strList = (List) Arrays.asList( location.split("[,\\:]"));

    String[] str = new String[5];
    int count=0;
    for(String s : strList){
        try {
            Double d =Double.parseDouble(s);
            str[count] = d.toString();
            System.out.println("In String Array:"+str[count]);
            count++;
        } catch (NumberFormatException e) {
          System.out.println("s:"+s);
        }

    }
        String location = "$,lat:27.980194,lng:46.090199,speed:0.48,fix:1,sats:6,";
        Matcher m = Pattern.compile( "\\d+\\.*\\d*" ).matcher(location);
        List<String> allMatches = new ArrayList<>();
        while (m.find( )) {
            allMatches.add(m.group());
        }
        System.out.println(allMatches);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM