Java--列表中的字符并映射到大写

时间:2017-11-18 03:49:45

标签: java list java-stream

我正在尝试将列表中的所有内容转换为大写,但我遇到了麻烦。我收到了最后一行的错误:

  

方法图(功能不适用于   参数(字符:: toUppercase)

但我不确定如何修复它。另外,如何显示此列表中" g"?

之后的所有字符
 public static void main(String[] args)  {
      List<Character> list = new ArrayList<>();
      String alphabet = "abcdefghijklmnopqrstuvwxyz";
      SecureRandom random = new SecureRandom();

      for (int i = 0; i < 30; ++i)
      {
         list.add(alphabet.charAt(random.nextInt(26)));
      }

     System.out.println("Ascending: ");

     list.stream().sorted().forEach(System.out::print);

     System.out.println("Characters in uppercase: ");

     list.stream().map(Character::toUpperCase).collect(toList());
}  

2 个答案:

答案 0 :(得分:0)

你的代码拼写错误了 请添加&#34;)&#34;在args之后并使用正确的方法名称:toUpperCase

请检查Oracle Character docs

答案 1 :(得分:0)

正如Oleg所说,您的错误消息表明您的编译代码引用getUppercase c C 的实例。您的代码示例看起来不错,适合我。也许你只需要重新编译?

为了过滤掉前六个字母,你可以比较整数这样的字符:

Stream.of('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
          'u', 'v', 'w', 'x', 'y', 'z')
      .map(Character::toUpperCase)
      .filter(c -> c > 'G')
      .forEach(System.out::print);

// HIJKLMNOPQRSTUVWXYZ