检查java中是否存在char

时间:2012-04-03 20:28:20

标签: java

如果我有一个包含“Cat”的字符串 如果每个charAt案例中都存在任何问题,我怎么能事先检查。 这是示例代码

    for (int i = 0; i < array.length; i++)
    {
        System.out.println();
        for (int j = 0; j < size; j++)
        {
            System.out.print(array[j].charAt(i) + " ");
        }
    }

一旦我达到3,你就会得到一个超出范围的例外。有没有办法可以打印一个空的空间?

编辑:对不起,我一点也不清楚。有多个字符串垂直打印。因此,假设最大字符串大小为10,最小字符串大小为4.每个字符串的前四个字符打印正常。但是当第五个char尝试打印时会发生越界错误,因为它不存在。有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:7)

你有ij错误的方式,就是这样。

你应该:

System.out.print(array[i].charAt(j) + " ");

为了使您的代码更加健壮,您应该重写内部循环,直到它达到array[i]的长度,而不是预定义的size变量。

更新:如果要垂直打印字符串数组(因此每个字符串都在一列中),这就是您的代码应该是这样的:

for (int i = 0; i < size; i++)             // i is the loop variable for the character count, we'll print one line for each character
{
    for (int j = 0; j < array.length; j++) // for every string in the array
    {
        char c = ' ';                      // print out a space character by default to keep the columns aligned
        if ( array[j].length() > i )       // but if the array[j] still has characters left
            c = array[j].charAt(i);        // print that character instead
        System.out.print(c + " ");         // here
    }
    System.out.println();                  // and close the line
}

答案 1 :(得分:1)

  

如果每个人都有任何东西,我怎么能事先检查   特例。

除了biziclop已经提到的索引问题之外,您还必须在执行charAt之前检查字符串的大小。
我的意思是for (int j = 0; j < size; j++)此处size应为array[j].length()才能实现此目的。

但为什么要烦恼循环迭代呢? 你可以System.out.print(array[i] + " ");