我正在尝试编写一种方法来接收字符串作为参数,并从中删除所有空格和标点,因此这是我的想法。
switch(mySegmentedControl.selectedSegmentIndex) {
case 0:
//do all the report and swipe in here
case 1:
break
default:
break
}
现在,我只添加了text = normalize Text(text);然后打印它,因为没有它它不会将它打印到屏幕上(即使在某些方法中返回实际上会在屏幕上显示输出) 无论如何,即使此更改也无济于事,因为它没有从方法打印出的字符串中删除任何内容,而是打印出了完全相同的字符串。 提前致谢 。 :)
答案 0 :(得分:3)
您的代码中的问题是,您尚未分配回在s.replace(“:”,“”);之后生成的新字符串;请记住,字符串是不可变的,因此by replace方法的更改将不适用于调用该方法的字符串对象。
您应该写过
public static String normalizeText(String s) {
s = s.replaceAll("[().,?!:'\"; ]", "").toUpperCase();
return s;
}
您可以像这样编写您的方法,而不是繁琐的normalizeText方法
s = s.replace(":", "")
答案 1 :(得分:1)
您需要在每次替换后对字符串进行赋值,例如
"k=v&k2=v2"
但是请注意,我们可以轻松地使用单个正则表达式来处理您的替换逻辑:
public static String normalizeText(String s) {
s = s.replace(" ", "");
s = s.replace("(","");
// your other replacements
s = s.toUpperCase();
return s;
}