2012-04-03 170 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] + " ");