簡體   English   中英

Java字符串標記器檢查數字

[英]Java string tokenizer checking numbers

在這里是Java的初學者,我正在嘗試將中綴表達式轉換為后綴表達式,但是在理解如何檢查StringTokenizer創建的令牌是否為數字方面遇到困難。 我嘗試了tokens.equals()方法,但意識到它並不有效,因為數字並不總是1位數字。

public String infixToPostfix() {

    Stack<String> s = new Stack<>();

    String expression = jtfInfix.getText();
    String delims = "+-*/() ";

    StringTokenizer strToken = new StringTokenizer(expression, delims, true); 

    String postFix = "";

    while (strToken.hasMoreTokens()) {
        String token = strToken.nextToken();
        // if the next token is a number, append it to the result
        if (token!=delims) {
            postFix += token;
        }
    }

}

因為有很多情況,所以檢查String是否為數字可能很棘手。 除非您打算接受簡單的值,例如正整數(任何數字長度),否則我不建議自己編寫代碼。 要執行此簡單檢查,可以使用正則表達式:

token.matches("\\d+");

它將匹配一個或多個數字(數字)。

有關更復雜的匹配(例如十進制值和負數),請參見如何在Java中檢查字符串是否為數字


用法示例:

"1".matches("\\d+");      // true
"1057".matches("\\d+");   // true
"".matches("\\d+");       // false
"1.0".matches("\\d+");    // false
"-1".matches("\\d+");     // false

暫無
暫無

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

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