2015-11-13 26 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{ 

    } 

希望这有助于

相关问题