2017-11-18 112 views
-4

我想将列表中的所有内容都转换为大写,但是我遇到了这个问题。我得到一个错误,最后一行:Java--列表中的字符并映射为大写

的方法映射(功能并不适用于 参数(字符:: 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()); 
} 
+0

'的System.out.println(list.stream()地图(字符串::的valueOf).MAP(字符串:: toUpperCase).collect(Collectors.joining()));'和'System.out.println(list.stream()。filter(ch - > ch>'g')。map(String :: valueOf)。 map(String :: toUpperCase).collect(Collectors.joining()));' –

+0

“我得到最后一行的错误” - 错误是什么? – alfasin

+0

关于第二个问题:'list.subList(list.indexOf('G')+ 1,list.size())' – alfasin

回答

0

你已经在你的代码 请加“)” ARGS后,还可以使用正确的方法名称得到了拼写错误:toUpperCase

请检查Oracle Character docs

0

由于奥列格说,你的错误信息表明您的编译代码referes到getUppercase使用CÇ instread的。你的代码示例看起来不错,适合我。也许你只需要重新编译?

用于滤除前六个字母,你可以只是比较喜欢字符整数:

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