正确解析字符串而不丢失分隔符

时间:2012-10-25 13:59:30

标签: java parsing

我有一段代码,基本上将英文翻译成文字说话。

目前我正在使用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();
                }

1 个答案:

答案 0 :(得分:6)

您可以使用具有

StringTokenizer
StringTokenizer(String str, String delim, boolean returnDelims) 

构造函数,当迭代标记时,也会返回分隔符。