trim()不起作用

时间:2015-06-01 13:10:02

标签: java string

String m1 = nextLine[6]; //"9602612325 "
m1 = m1.trim();                                  
if(m1 != null && !m1.isEmpty()){
      mob1 = Double.parseDouble(m1);
}else{
      mob1 = 0; 
}

我正在尝试删除

中的空格
  

String m1 =“9602612325”;

我已经浏览了以下链接string trim functionstring pool,但仍无法找到答案。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

String m1 = "9602612325 ";
if(! Strings.isNullOrEmpty(m1)){ // Google Guava's utility class --> Strings
     m1 = m1.trim();
     try{
      mob1 = Double.parseDouble(m1);
      }
     catch(NumberFormatException e){
       mob1=0;
      }
}
else{
    mob1=0;
}                                      

注意:你也可以像这样手动检查null和空

if("".equals(m1)){    // here you need not to check for null seperately
 //do Whatever you need to do 
}

答案 1 :(得分:1)

有时,有一种情况,可能不是空格,而是non-breakable spacen spacem space等, 如果trim()对某些角色不起作用。 确保最后一个字符是空格。

如果最后一个字符不是空格,那么你可以编写自己的逻辑来做到这一点。

String text = " my text ";
char[] trimChars = {'\u00A0', ' '};//Add anything else you like to trim.
bool isSpaceBefore = false, isSpaceAfter = false;
do {
    isSpaceAfter = false;
    isSpaceBefore = false;
    for(int c=0; c<trimChars.length; c++) {
        isSpaceBefore = text.indexOf(trimChars[c]) == 0;
        isSpaceAfter = text.lastIndexOf(trimChars[c]) == text.length-1;
    }
    if(isSpaceAfter) text = text.substring(0, text.length-1);
    if(isSpaceBefore) text = text.substring(1);
}
while(isSpaceBefore || isSpaceAfter);

作为简化版本,您也可以使用查找和替换。但请注意,替换将替换任何匹配的字符,即使它们位于字符串的中间。