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 function和string pool,但仍无法找到答案。任何人都可以帮助我吗?
答案 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 space
,n space
,m 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);
作为简化版本,您也可以使用查找和替换。但请注意,替换将替换任何匹配的字符,即使它们位于字符串的中间。