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

Soc*_*Pig 4 java parsing

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

目前我正在使用该String.split()方法并使用\\\W作为分隔符,删除所有非单词字符.

就目前而言,这就是我得到的:

input:I hate text speak!:)
output:I h8 txt spk
Run Code Online (Sandbox Code Playgroud)

反正我有没有丢失分隔符?

编辑:这是进行解析的方法.现在它用空格替换分隔符,所以至少它仍然可读...

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();
                }
Run Code Online (Sandbox Code Playgroud)

icz*_*cza 6

你可以使用StringTokenizer有一个的类

StringTokenizer(String str, String delim, boolean returnDelims) 
Run Code Online (Sandbox Code Playgroud)

constuctor,当遍历标记时,也会返回分隔符.