簡體   English   中英

如何在Java中的數字和字符之間分割字符串

[英]How to split a string between digits and characters in java

我需要分割一個包含一系列數字和字符的字符串。 數字可以有小數位。 還必須考慮到字符串可以有或沒有空格。 我需要弄清楚如何使用正確的正則表達式。

我嘗試了不同的.split()配置,但是它無法按照我希望的方式工作。

static int getBytes (String text) {

    //the string is split into two parts the digit and the icon
    String[] parts = text.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
    double num = Double.parseDouble(parts[0]);
    String icon = parts[1];

    // checks if the user enters a valid input
    if(parts.length > 2 || icon.length() > 3) {
        System.err.println("error: enter the correct format");
        return -1;
    }

    return 0;
}
 if i have a string text = "123.45kb"; i expect = "123.45", "kb"
 or text = "242.24 mg"; i expect = "242.24", "mg"
 or text = "234    b" i expect = "234", "b"

當前環顧四周的邏輯問題是\\\\D任何非數字字符匹配。 這的確包含字母(例如kb ),但也包含. 以及任何其他非數字字符。 嘗試僅在數字和字母之間分割:

String text = "123.45 kb";
String[] parts = text.split("(?<=[A-Za-z])\\s*(?=\\d)|(?<=\\d)\\s*(?=[A-Za-z])");
System.out.println(Arrays.toString(parts));

打印:

[123.45, kb]

暫無
暫無

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

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