题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18649
以下是我的java代码:
package UVaOJ;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static String filter(String s){
StringBuilder sb = new StringBuilder();
for(char c:s.toCharArray()){
if(Character.isAlphabetic(c)) sb.append(c);
else sb.append(" ");
}
return sb.toString();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeSet<String> ts = new TreeSet<String>();
while(sc.hasNext()){
String s = filter(sc.nextLine().toLowerCase());
String[] str = s.split(" +");
for(String ss:str){
if(ss != "") ts.add(ss);
}
}
for(String s:ts){
System.out.println(s);
}
sc.close();
}
}
提交WA,求解~
String[] str = s.split(" +");
->
String[] str = s.split("\s+");
String[] str = s.split("\\s+");
噗。。。\\s+改了还是WA
TreeSet不会去重吧。你需要一个判断。
用Character.isLetter
呢
if(ss != "") ts.add(ss);
->
if(!ss.equals("")) ts.add(ss);
增加点日志输出看下
System.out.println("---filter" + sb.toString());
return sb.toString();