2012-04-03 90 views
0

如果我有一个包含“Cat”的字符串 如果每个charAt情况中存在任何事情,我该如何检查。 下面是示例代码检查java中是否存在字符

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.每个字符串的前四个字符打印罚款。但是当第五个字符尝试打印,因为它不存在而出现越界错误。有没有办法解决这个问题?

回答

7

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

你应该有:

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

,使您的代码更健壮,你应该重写内环走,而不是预先定义的变量size直到达到array[i]长度。

更新:如果您想纵向打印字符串数组(所以每个字符串是在一列),这是你的代码应该是什么样子:

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

此外,我认为大小需要设置为数组[i] .length-1。 – kevingreen 2012-04-03 20:30:49

+3

@kevingreen:好吧,既然测试是'j 2012-04-03 20:32:21

+0

@GregHewgill是的,你是对的。出于某种原因,我将它看作<=尺寸。我认为这只是我自己编写这种方式的趋势。 – kevingreen 2012-04-03 20:33:38

1

我怎么能检查如果在每个人身上存在任何事情,请事先约定。

除了biziclop已经提到的索引问题,您还必须在执行charAt之前检查字符串的大小。
我的意思是for (int j = 0; j < size; j++)这里size应该是array[j].length()这个工作。

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