问题描述
- 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+");
解决方案三:
TreeSet不会去重吧。你需要一个判断。
解决方案四:
用Character.isLetter
呢
if(ss != "") ts.add(ss);
->
if(!ss.equals("")) ts.add(ss);
增加点日志输出看下
System.out.println("---filter" + sb.toString());
return sb.toString();
解决方案五:
s+改了还是WA
解决方案六:
"s+"改了还是WA
解决方案七:
噗。。。\s+改了还是WA
时间: 2024-11-18 03:28:48