外循环遍历每一行,嵌套循环遍历每个字符
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
进行比较。您应该遍历数组中的String
s,并为每个这样的String
遍历组成它的char
s。虽然这可以通过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 的简单查询字符串