Java-如何在字符串中查找非字母字母? (快捷方式)

时间:2017-10-28 02:35:40

标签: java string indexof lastindexof

在Java中,给出一个字符串,比如“abc @ df”,其中字符'@'可以是任何其他非字母,如'%','^','&'等等。找到该指数最有效的方法?我知道for循环会有点快(取决于字符串的长度),但是其他更快的方法呢?一种方法,用于查找非字母字母的所有索引或与给定索引最接近的索引(如indexOf(string,startingIdx))   谢谢!

2 个答案:

答案 0 :(得分:1)

for循环,您可以使用Character类来确定每个字符是否为Letter(或其他类型)。请参阅:https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isAlphabetic(int)

答案 1 :(得分:0)

您应该使用正则表达式:

  Pattern patt = Pattern.compile("[^A-Za-z]");
  Matcher mat = patt.matcher("avc@dgh");
  boolean found = mat.find();
  System.out.println(found ? mat.start() : -1);