首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Input1 = input.replaceAll不工作

Input1 = input.replaceAll不工作
EN

Stack Overflow用户
提问于 2015-03-24 15:36:53
回答 4查看 595关注 0票数 0

因此,我有一个扫描器,它接收一个字符串并将其保存到输入中,然后我尝试这样做。

代码语言:javascript
复制
    input.replaceAll("?/.,!' ", ""); 

然后打印下面的行来测试它,但是它不能代替任何东西

代码语言:javascript
复制
    import java.util.Scanner;

    public class Test2 {
        public static void main (String[]args){
            Scanner sc = new Scanner (System.in);
            System.out.print("Please enter a sentence: ");
            String str = sc.nextLine();

            int x, strCount = 0;
            String str1;

            str1 = str.replaceAll(",.?!' ", "");

            System.out.println(str1);

            for (x = 0; x < str1.length(); x++)
            {
                strCount++;
            }
            System.out.println("Character Count is: " + strCount);

       }

    }

这是我正在使用的代码。我所需要的只是把所有的标点符号和空格替换为零。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-24 15:40:54

这一行:

代码语言:javascript
复制
str.replaceAll(",.?!' ", "");

将搜索整个字符串",?!“将被替换。replaceAll方法的参数是正则表达式。

所以,这样做肯定会更好:

代码语言:javascript
复制
str.replaceAll("[,.?!' ]", "");
票数 2
EN

Stack Overflow用户

发布于 2015-03-24 15:41:52

第一个参数必须是正则表达式,这里是替代字符类[ ... ]

代码语言:javascript
复制
String str1 = str.replaceAll("[?/.,!' ]", "");

或者更广义的s=whitespace,Punct=punctuation:

代码语言:javascript
复制
String str1 = str.replaceAll("[\\s\\p{Punct}]", "");
票数 2
EN

Stack Overflow用户

发布于 2015-03-24 15:40:57

除非字符,.?!一起出现在输入String中,否则不会进行替换。您可以使用字符类来指定字符的范围。

代码语言:javascript
复制
str1 = str.replaceAll("[,.?!' ]", "");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29236835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档