Java 检查字符列表中的元素是否为字符串
我正在尝试编写一些代码,对于给定的字符串和给定的字符列表(unicode字符,不同类型破折号的unicode,例如:{\u2011\u00AD\u2013}),它可以检查我的字符列表中是否有任何字符出现在该字符串的末尾(可能出现两次)并删除它,直到我没有空间或列表中的元素作为字符串的结束字符 我不知道如何在java中初始化字符列表(使用unicode),在网上找不到答案。Java 检查字符列表中的元素是否为字符串,java,Java,我正在尝试编写一些代码,对于给定的字符串和给定的字符列表(unicode字符,不同类型破折号的unicode,例如:{\u2011\u00AD\u2013}),它可以检查我的字符列表中是否有任何字符出现在该字符串的末尾(可能出现两次)并删除它,直到我没有空间或列表中的元素作为字符串的结束字符 我不知道如何在java中初始化字符列表(使用unicode),在网上找不到答案。 我想反转字符串并检查其中的每个字符。 我已经试过正则表达式了,但是速度太慢了 Input : foo oof ofo- O
我想反转字符串并检查其中的每个字符。
我已经试过正则表达式了,但是速度太慢了
Input :
foo oof ofo-
Output :
foo oof ofo-
您可以通过一个循环来完成,更新一个变量来跟踪您要删除的内容
Set<Character> charactersIWantToDelete = new HashSet<Character>(
Arrays.asList('\u2011', '\u00AD', '\u2013', ' ')
// whatever characters you want to delete
);
int newLen = string.length();
while (newLen > 0 && charactersIWantToDelete.contains(string.charAt(newLen-1)) {
--newLen;
}
string = string.substring(0, newLen);
Set charactersIWantToDelete=新哈希集(
Arrays.asList('\u2011','\u00AD','\u2013','')
//您要删除的任何字符
);
int newLen=string.length();
while(newLen>0&&charactersIWantToDelete.contains(string.charAt(newLen-1)){
--纽伦;
}
string=string.substring(0,newLen);
Set<Character> charactersIWantToDelete = new HashSet<Character>(
Arrays.asList('\u2011', '\u00AD', '\u2013', ' ')
// whatever characters you want to delete
);
int newLen = string.length();
while (newLen > 0 && charactersIWantToDelete.contains(string.charAt(newLen-1)) {
--newLen;
}
string = string.substring(0, newLen);