我目前正在使用以下代码从数组中的字符串中删除某些字符
myArray[x] = myArray[x].replaceAll("[aeiou]","");
工作正常,但我需要忽略字符串的第一个字符,例如,如果一个数组元素是Alan,它将被剥离到Aln。
我不确定使用replaceAll是否是最好的方法,但我能想到的另一种方法是删除第一个字符,将上述正则表达式应用于字符串,然后重新附加字符然后插入回到阵列,这似乎是一个漫长的方式做到这一点。
答案 0 :(得分:1)
怎么样......
myArray[x] = myArray[x].replaceAll("(^.)[aeiou]", "\\1");
// upd
负面观察是你的解决方案,就像鲍里斯回答的那样。
答案 1 :(得分:1)
您可以使用负向lookbehind断言模式前面没有行开头标记(^
):
public static void main(String[] args) throws Exception {
final String[] input = {"abe", "bae"};
for(final String s: input) {
System.out.println(s.replaceAll("(?<!^)[aeiou]", ""));
}
}
输出:
ab
b