展开全部
要求1中要去掉所有数字,要求2、3中又要保留数字并进行翻译,所以我两种都e69da5e6ba9062616964757a686964616f31333431373238写了。具体代码为:
public class Test {
public static void main(String args[]) {
String str = "0as2sw$#3Six";
System.out.println("原字符串:[" + str + "]");
System.out.println("");
//不翻译数字
Set set1 = new LinkedHashSet<>();
for (String s : str.split("[^A-Z a-z]")) {
if (s.length() > 0) {
set1.add(s);
}
}
System.out.println("不翻译数字的结果:" + set1);
System.out.println("");
/*因为又要去除非字母和数字(以下简称去杂),又要将去杂结果分离成数字和字母,再翻译数字,整个流程挺麻烦的,索性在去杂之前,先将数字翻译成英文,为了使数字翻译后的英文和原字符串的字母分开,在数字左右添加占位符#,这样的话,形如:[a1b2c3]就会被处理为:[a#one#b#two#c#three