Java:转换为基本循环

Java:转换为基本循环,java,loops,for-loop,Java,Loops,For Loop,我只是想知道如何将(char c:str.tocharray())转换为简化的循环。我试过了 for(int i = 0; i <= str.length(); i++) { char[] c = str.toCharArray(); for(inti=0;i实际上,您使用的是整个数组,而不是一个元素。您应该将字符串到字符数组的转换从for循环中取出,并在循环中使用c[i] 以前,您所做的是每次检查由{'t','h',…}组成的数组是否包含在地图中,而不是只检查每

我只是想知道如何将(char c:str.tocharray())转换为简化的循环。我试过了

for(int i = 0; i <= str.length(); i++)
    {
        char[] c = str.toCharArray();

for(inti=0;i实际上,您使用的是整个数组,而不是一个元素。您应该将字符串到字符数组的转换从for循环中取出,并在循环中使用c[i]


以前,您所做的是每次检查由{'t','h',…}组成的数组是否包含在地图中,而不是只检查每个字符。 其他人建议的charAt()是一种很好的方法,可以在不使用额外变量的情况下执行您想要的操作

String str = "this is my new string";
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
char[] c = str.toCharArray();

for(int i = 0; i <= str.length(); i++)
{
    if(!map.containsKey(c[i]))
        map.put(c[i],1);
    else
    {
        int value = map.get(c[i]);
        map.put(c[i], ++value);
    }
}
System.out.println(map);
String str=“这是我的新字符串”;
HashMap=newHashMap();
char[]c=str.toCharArray();
对于(int i=0;i请尝试以下方法:


for(inti=0;i而不是
toCharArray()

编译器在这里为您所做的等效工作是

char[] chrs = str.toCharArray();
for(int i = 0; i < chrs.length; i++) {
   char c = chrs[i];
   // ...
}
char[]chrs=str.toCharArray();
对于(int i=0;i
这里c是一个字符数组而不是一个字符。所以你们会遇到问题

public static void main(String[] args) {
String str = "aabbccdefgh";

Map<Character, Integer> map = new HashMap<Character, Integer>();

for (int i = 0; i < str.length(); i++) {
    Integer count = map.get(str.charAt(i));
    if (count == null)
        map.put(str.charAt(i), 1);
    else
        map.put(str.charAt(i), count + 1);
}
}
publicstaticvoidmain(字符串[]args){
String str=“aabbccdefgh”;
Map Map=newhashmap();
对于(int i=0;i

试试这个。

“但是它似乎不起作用”不是描述问题的好方法。为什么在循环的每一步都使用
char[]c=str.tocharray();
char[] chrs = str.toCharArray();
for(int i = 0; i < chrs.length; i++) {
   char c = chrs[i];
   // ...
}
if(!map.containsKey(c))
public static void main(String[] args) {
String str = "aabbccdefgh";

Map<Character, Integer> map = new HashMap<Character, Integer>();

for (int i = 0; i < str.length(); i++) {
    Integer count = map.get(str.charAt(i));
    if (count == null)
        map.put(str.charAt(i), 1);
    else
        map.put(str.charAt(i), count + 1);
}
}