0

我正在输入一个字符串,我想将该字符串中的分隔符添加到另一个字符串中,我想知道您将如何做到这一点。这是我目前拥有的代码。

StringTokenizer tokenizer = new StringTokenizer(input, "'.,><-=[]{}+!@#$%^&*()~`;/?");
while (tokenizer.hasMoreTokens()){
      //add delimeters to string here
}

任何帮助将不胜感激(:

4

4 回答 4

1

这甚至可以处理分隔符的重复使用

String input = "adfhkla.asijdf.';.akjsdhfkjsda";
String compDelims = "'.,><-=[]{}+!@#$%^&*()~`;/?";
String delimsUsed = "";
for (char a : compDelims.toCharArray()) {
    if (input.indexOf(a) > 0 && delimsUsed.indexOf(a) == -1) {
         delimsUsed += a;
    }
}
System.out.println("The delims used are " + delimsUsed);
于 2013-01-04T05:30:47.060 回答
1

我不认为 StringTokenizer 适合这个任务,试试

    StringBuilder sb = new StringBuilder();
    for(char c : input.toCharArray()) {
        if ("'.,><-=[]{}+!@#$%^&*()~`;/?".indexOf(c) >= 0) {
            sb.append(c);
        }
    }
于 2013-01-04T05:18:34.210 回答
1

我猜你想从字符串中提取所有分隔符并处理它们

String allTokens = "'.,><-=[]{}+!@#$%^&*()~`;/?";
StringTokenizer tokenizer = new StringTokenizer(input, allTokens, true);
while(tokenizer.hasMoreTokens()) {
    String nextToken = tokenizer.nextToken();
    if(nextToken.length()==1 && allTokens.contains(nextToken)) {
        //this token is a delimiter
        //append to string or whatever you want to do with the delimiter
        processDelimiter(nextToken);
    }
}

创建一个 processDelimiter 方法,在该方法中将分隔符添加到不同的字符串或执行您想要的任何操作。

于 2013-01-04T05:25:18.590 回答
1

如果要StringTokenizer返回它解析的分隔符,则需要向构造函数添加一个标志,如下所示

StringTokenizer tokenizer = new StringTokenizer(input, "'.,><-=[]{}+!@#$%^&*()~`;/?", true);

但是,如果您只搜索分隔符,我认为这不是正确的方法。

于 2013-01-04T05:07:33.097 回答