如何检查空格和特殊字符是否在字符串中,不包括下划线和句点

时间:2015-08-04 22:04:17

标签: java string

我有一个Java中的String,我想检查空格和特殊字符,不包括下划线和句点。最好的方法是什么?

更新

这就是我解决这个特殊问题的方法:

            String actualString = "string";
            String testString = actualString;
            testString = testString.replaceAll("_", "");
            testString = testString.replaceAll("\\.", "");
            Pattern whiteSpaceP = Pattern.compile("\\s", Pattern.CASE_INSENSITIVE);
            Matcher whiteSpaceM = whiteSpaceP.matcher(testString);
            Pattern specCharP = Pattern.compile("\\W", Pattern.CASE_INSENSITIVE);
            Matcher specCharM = specCharP.matcher(testString);
            if(whiteSpaceM.find() || specCharM.find()) {
               System.out.println("There are spaces and non-alphanumeric characters excluding . and _ in the string");
            }

3 个答案:

答案 0 :(得分:1)

最好的方法是使用正则表达式,或正则表达式,或Pattern。可用于正则表达式的文档和教程的数量对于所有语言来说都是如此巨大,我认为不值得在这里说更多。你应该研究这个术语并学习如何使用它们,因为它们是各种程序员在各种情况下的必备工具!

答案 1 :(得分:0)

这可能对您有用:

for(int i =0;i<input.length(); i++){
    if(input.charAt(i).equals("_")||input.charAt(i).equals(".")){
        continue; //ignoring the character
    }
    else if(input.charAt(i).equals("#")||input.charAt(i).equals("%")||input.charAt(i).equals("&")||input.charAt(i).equals("$")){  //Add or clauses for each special character
        System.out.println("Special Character found!!");

    }
    else if(input.charAt(i).equals(" ")){
        System.out.println("White space!!");
    }

}

答案 2 :(得分:0)

你应该使用java库为你提供的Matcher和Pattern类的正则表达式,检查一下它解释了如何很好地使用Pattern和Matcher类。 http://tutorials.jenkov.com/java-regex/matcher.html#java-matcher-example