Java 作为字符串在字母表中循环

Java 作为字符串在字母表中循环,java,string,loops,for-loop,Java,String,Loops,For Loop,我想用for循环遍历字母表,并将每个字母添加到我的HashMap for(char alphabet = 'A'; alphabet <= 'Z';alphabet++) { System.out.println(alphabet); } 我需要迭代器是字符串,但是 for(String alphabet = 'A'; alphabet <= 'Z';alphabet++) { System.out.println(alphabet); } 有什么想

我想用for循环遍历字母表,并将每个字母添加到我的
HashMap

for(char alphabet = 'A'; alphabet <= 'Z';alphabet++) {
    System.out.println(alphabet);
}
我需要迭代器是字符串,但是

 for(String alphabet = 'A'; alphabet <= 'Z';alphabet++) {
         System.out.println(alphabet);
 }

有什么想法吗?

基本上将字符转换为字符串,如下所示:

for(char alphabet = 'A'; alphabet <= 'Z';alphabet++) {
    hm.put(""+alphabet, null);
}   
for(char letter = 'A'; letter <= 'Z'; letter++) {
    String s = new String(new char[] {letter});
     System.out.println(s);
}


实际上是相同的。

您不能将
字符
分配给
字符串
,也不能用
+
增加字符串。您可以像在第一个示例中那样迭代
字符
,并将该
字符
转换为
字符串
,如下所示:

for(char alphabet = 'A'; alphabet <= 'Z';alphabet++) {
    hm.put(""+alphabet, null);
}   
for(char letter = 'A'; letter <= 'Z'; letter++) {
    String s = new String(new char[] {letter});
     System.out.println(s);
}

for(char letter='A';letter第一个问题:当您使用
HashMap
时,您应该将一个键映射到一个值。您不只是在哈希映射中放入一些内容。您要放入的字母是一个值吗?那么键是什么?是键吗?值是什么

您可能认为使用“null”作为值是一个好主意,但您应该问问自己:在这种情况下,我应该使用映射吗?也许使用
哈希集
是一个更好的主意

第二个问题是,与所有java集合一样,
HashMap
,只接受对象——既作为键也作为值。如果您想使用字符作为键,可以将映射定义为
map
,这将自动装箱您的字符(将其转换为
字符类型的对象
)或者可以使用以下命令将字符转换为字符串:

Character.toString(alphabet);

在带有流API的Java8中,您可以这样做

 IntStream.rangeClosed('A', 'Z').mapToObj(var -> String.valueOf((char) var)).forEach(System.out::println);
我们使用字符而不是字符串
Character.toString(alphabet);
 IntStream.rangeClosed('A', 'Z').mapToObj(var -> String.valueOf((char) var)).forEach(System.out::println);