如何阅读特定的特殊字符

时间:2017-05-23 17:21:51

标签: java string

我有一个像

这样的字符串
Str s1 = abd,jh
Str2 = aa$$ab

我想读取只有a,b和$。

的字符串
Str1 return false
Str2 return true.

我的代码

public static boolean containsOtherCharacter(String str) {
        String[] st = str.split("");
        for(int x = 0; x < st.length; x++)
            if (st[x].compareTo("A") != 0 && st[x].compareTo("B") != 0 && st[x].compareTo("$") != 0)
                return true;
        return false;
    }

任何帮助如何阅读。除此之外的任何其他值都应该被忽略。

3 个答案:

答案 0 :(得分:4)

你试图在这里过度复杂化。你可以简单地使用正则表达式,比如

String s = "aa$$ab";
System.out.println(s.replaceAll("[ab$]", "").length()==0);

它会从a中删除$bString。之后,如果长度大于0,那么String必须有其他一些字符。注意它区分大小写。

答案 1 :(得分:0)

 public static boolean hasSpecialChar( String input)
 {
    boolean found = true;
   int len = input.length();
   for(int i = 0; i< len ; i++)
   {
      if(input.charAt(i)== 97|| input.charAt(i)==98 ||input.charAt(i)==36)
      {
         // read the string 
         }
         else 
         {
            found = false;
            return found;
            // give out the error
            }
      }
      return found ;

    }

由于您只想读取a,b和$,因此我们可以使用字符的ASCII值,从而逐字符串地读取字符串并检查输入。由于a的ASCII值等于97,对于b为98,对于$为36,这对于这种情况可以正常工作。 希望对你有所帮助! @shanky singh

答案 2 :(得分:0)

以下是解决此问题的另一种方法:

public static boolean containsOtherCharacter(String str) {
           boolean The_answer=false;
           int count0 = StringUtils.countMatches(str, "a");
           int count1 = StringUtils.countMatches(str, "b");
           int count2 = StringUtils.countMatches(str, "$");
           int ans=count0+count1+count2;

           if(ans==str.length())The_anser=true;

           return The_answer;
   }