我有一段代码,基本上将英文翻译成文字说话。
目前我正在使用String.split()
方法并使用\\\W
作为分隔符,删除所有非单词字符。
目前我就是这样:
input:I hate text speak!:)
output:I h8 txt spk
反正我有没有丢失分隔符?
编辑:这是进行解析的方法。现在它用空格替换分隔符,所以至少它仍然可读......
public static String engToText(String text){
text=text.toLowerCase();
String translated=" ";
//breaks string into tokens
String[] tokens = text.split("\\W");
for(int x=0;x<tokens.length;x++){
if(wordMapEng.containsKey(tokens[x])){
translated+=" "+wordMapEng.get(tokens[x]);
}else{
translated+=" " + tokens[x];
}
}
return translated.trim();
}
答案 0 :(得分:6)
您可以使用具有
的StringTokenizer
类
StringTokenizer(String str, String delim, boolean returnDelims)
构造函数,当迭代标记时,也会返回分隔符。