UVa-10815 Andy's First Dictionary

题目链接: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();