我正在输入一个字符串,我想将该字符串中的分隔符添加到另一个字符串中,我想知道你将如何做到这一点。这是我目前的代码。
StringTokenizer tokenizer = new StringTokenizer(input, "'.,><-=[]{}+!@#$%^&*()~`;/?");
while (tokenizer.hasMoreTokens()){
//add delimeters to string here
}
非常感谢任何帮助(:
答案 0 :(得分:1)
如果希望StringTokenizer
返回它解析的分隔符,则需要向构造函数添加一个标记,如图所示here
StringTokenizer tokenizer = new StringTokenizer(input, "'.,><-=[]{}+!@#$%^&*()~`;/?", true);
但是如果你只搜索分隔符,我不认为这是正确的方法。
答案 1 :(得分:1)
我认为StringTokenizer不适合这项任务,请尝试
StringBuilder sb = new StringBuilder();
for(char c : input.toCharArray()) {
if ("'.,><-=[]{}+!@#$%^&*()~`;/?".indexOf(c) >= 0) {
sb.append(c);
}
}
答案 2 :(得分: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方法,在该方法中将分隔符添加到其他字符串或执行您想要的任何操作。
答案 3 :(得分: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);