在Java中,给定一个字符串,如“abc@df”,其中字符“@”可以是任何其他非字母,如“%”、“^”、“&”等。什么是最有效的方法找到那个索引?我知道 for 循环会有点快(取决于字符串长度),但是其他更快的方法呢?一种查找非字母字母的所有索引或与给定索引最接近的索引的方法(如 indexOf(string,startingIdx))谢谢!
问问题
1244 次
2 回答
1
一个for循环,可以使用Character类来判断每个字符是不是一个Letter(或者其他类型)。请参阅:https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isAlphabetic(int)
于 2017-10-28T03:09:27.950 回答
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);
于 2017-10-28T02:56:38.237 回答