2015-11-13 46 views
2

我有一個String,有時值改爲:檢查一個字符串包含「+」號和數量僅

String str1 = "+25"; // only have "+" sign and number 

String str2 = "+Name"; // only have "+" sign and text 

我怎樣才能區分這些String,因爲我想要做這樣的事情:

if (isString1Type) { // both strings also have "+" sign 
// do something 
} 

String是否有這種情況下的任何功能。 任何人都可以給我建議嗎?

+0

我想你需要的模式正則表達式(正則表達式)。 – jogo

+0

作爲簡單直接的解決方案,您只需遍歷字符串的字符並檢查每個字符是否是數字或等號。 –

回答

2

是的,你可以做這樣的事情:

String str = "+Name"; 
boolean hasPlusSign = str.contains("+"); 
boolean isNumber = tryParseInt(str.replace("+", "")); 
if(hasPlusSign && isNumber){ //if the string is +25 for example here will be true, else it will go to the else statement 
    //do something 
} else { 
    //something else 
} 


boolean tryParseInt(String value) { 
    try { 
     Integer.parseInt(value); 
     return true; 
    } catch (NumberFormatException e) { 
     return false; 
    } 
} 
+0

我的目標是區分str1&str2,兩個字符串都有「+」號。 – linhtruong

+0

對不起,看看我的帖子的更新,請 –

+0

哦,我明白了,謝謝你的回覆! – linhtruong

0

您可以使用正則表達式是這樣的:

[0-9] +這裏+是指從0-9

不止一個數字
String str1 = "+25"; 

String str2 = "+Name"; 

String regex = "[0-9]+"; 

if(isDigit(str1.replace("+",""))){ 
    Log.d("str1","Integer"); 
}else{ 
    Log.d("str1","Not Integer"); 
    } 

if(isDigit(str2.replace("+",""))){ 
    Log.d("str2","Integer"); 
}else{ 
    Log.d("str2","Not Integer"); 
} 

boolean isDigit(String str){ 
    if(str.matches(regex)){ 
      return true; 
     }else { 
      return false; 
     } 
} 
1

你可以使用簡單的正則表達式"[+][0-9]+"。它更簡單和容易。
下面是示例代碼

String str1 = "+25"; 
    if (str1.matches("[+][0-9]+")){ 
     // your string contains plus "+" and number 
     // do something 
    }eles{ 

    } 

希望這有助於

相關問題