外循环遍历每一行,嵌套循环遍历每个字符

Posted

技术标签:

【中文标题】外循环遍历每一行,嵌套循环遍历每个字符【英文标题】:Outer loop to loop over each row and nested loop to loop over each character 【发布时间】:2014-06-29 06:53:10 【问题描述】:

我必须编写一个名为“count”的静态方法,将 char 作为参数,该方法将返回此 char 在 Layout.ROWS(Layout 类中的字符串数组)中出现的次数。为此,我需要一个外部循环来遍历每一行,并需要一个嵌套循环来遍历每个字符。这是我尝试过的:

public static int count(char d)

    int sum = 0; 
    int i = 0;

     while ( i < Layout.ROWS.length && !Layout.ROWS[i].equals(d) ) 
       
         i++;

         if (Layout.ROWS[i].equals(d))
         
            sum++;
         
        

     return sum;

但它不起作用。我的输出是:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException

知道我应该怎么做吗? 这是 Layout.ROWS:

public static final String[] ROWS = 
    "     p      ex",
    " .            ",
    "  .           ",
    "   .          ",
    "    .         "
;

【问题讨论】:

“不工作”是什么意思? 这是我的输出:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException 【参考方案1】:

您正在尝试将字符串 (Layout.ROWS[i]) 与 char 进行比较。您应该遍历数组中的Strings,并为每个这样的String 遍历组成它的chars。虽然这可以通过while 循环来实现,但使用for 循环会更简洁:

public static int count(char d) 
    int sum = 0; 

    // Iterate over all the strings in Layout.ROWS:
    for (String str : Layout.ROWS) 
        // Iterate over the chars of the string:
        for (int i = 0; i < str.length(); ++i) 
            if (d == str.charAt(i)) 
                ++sum;
            
        
    
    return sum;

【讨论】:

以上是关于外循环遍历每一行,嵌套循环遍历每个字符的主要内容,如果未能解决你的问题,请参考以下文章

PHP 循环遍历嵌套的 JSON 响应并重新组装为 Webhook 的简单查询字符串

急! jquery $.each 嵌套循环遍历

Node.js 循环遍历嵌套的 Javascript 对象

Python入门之控制结构 - 循环结构——第3关:循环嵌套

Ansible 嵌套循环 - 如何遍历循环项?

python中为啥我的for循环里嵌套的if只能循环一次?