public static void main(String[] args) {
        String[] a = StdIn.readAllStrings();
        Merge.sort(a);
        show(a);
    } public static String[] readAllStrings() {
        // we could use readAll.trim().split(), but that's not consistent
        // because trim() uses characters 0x00..0x20 as whitespace
        String[] tokens = WHITESPACE_PATTERN.split(readAll());
        if (tokens.length == 0 || tokens[0].length() > 0)
            return tokens;        // don't include first token if it is leading whitespace
        String[] decapitokens = new String[tokens.length-1];
        for (int i = 0; i < tokens.length - 1; i++)
            decapitokens[i] = tokens[i+1];
        return decapitokens;
    }public static String readAll() {
        if (!scanner.hasNextLine())
            return "";        String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();
        // not that important to reset delimeter, since now scanner is empty
        scanner.useDelimiter(WHITESPACE_PATTERN); // but let's do it anyway
        return result;
    }
我在eclipse调试时,控制台输入"S O R T E X A M P L E"
代码走到 String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();这行没有反应了,我想应该是输入不符合规范,但英文又不

解决方案 »

  1.   

    EVERYTHING_PATTERN是什么
      

  2.   


     private static final Pattern EVERYTHING_PATTERN = Pattern.compile("\\A");
      

  3.   

    “A”不需要转义呀,改成这样试试:private static final Pattern EVERYTHING_PATTERN = Pattern.compile("A");
      

  4.   

    系统默认是 空格,tab 回车为分隔符的因为他改了默认分隔符private static final Pattern EVERYTHING_PATTERN = Pattern.compile("A");所以系统一直在等待 下个分隔符。需要再输入A做结尾。系统默认是 空格,tab 回车为分隔符的