使用Java中的方法从字符串中删除字符

时间:2018-10-13 15:47:23

标签: java

我正在尝试编写一种方法来接收字符串作为参数,并从中删除所有空格和标点,因此这是我的想法。

switch(mySegmentedControl.selectedSegmentIndex) {

    case 0:

    //do all the report and swipe in here

    case 1:

        break


    default:
        break
    }

现在,我只添加了text = normalize Text(text);然后打印它,因为没有它它不会将它打印到屏幕上(即使在某些方法中返回实际上会在屏幕上显示输出) 无论如何,即使此更改也无济于事,因为它没有从方法打印出的字符串中删除任何内容,而是打印出了完全相同的字符串。 提前致谢 。 :)

2 个答案:

答案 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;
}