2012-09-19 47 views
2

我正在尋找幫助糾正'字符串索引超出範圍'的異常錯誤。我的代碼應該將兩個字符串作爲用戶的輸入(string1和string2)並創建作爲原始部分的新字符串。字符串索引超出範圍例外

到目前爲止,我有以下幾點:

modString1 = string1.substring(string1.length() -3, string1.length()); 

modString2 = string2.substring(0,3); 

上面的代碼應該採取字符串1的最後3個字符和字符串2的前3個字符。當用戶輸入一個短於3個字符的字符串時,我遇到了問題。

我想知道是否有方法來檢查輸入並添加一個字符(例如x)如果字符串太短?

例如,如果用戶輸入'A'作爲第一個字符串,它會將字符串更改爲'xxA',如果第二個字符串輸入'A',它會將其更改爲'Axx'?

回答

1

將if語句放在代碼之前,在處理它之前檢查字符串的長度。

例如:

if(string1.length() < 3) { 
    // Add characters to the string 
} 
1

我不知道是否有一種方法來檢查輸入,並添加一個字符(X爲例)如果字符串太短?

你在找什麼叫做padding

它可以通過多種方式完成。最簡單的可能是使用外部庫,如Apache的StringUtils。您也可以使用StringBuilder自己編寫填充方法。

相關:

+0

這看起來像什麼,我腦子裏想的不同之處在於使用的示例包含已知的字符串,例如:的String.format(「%10秒」,「富」)替換(」」,‘*’)。我不確定如果我接受來自用戶的輸入,該示例中將替換「foo」,我不知道如何處理此問題。 – User2

+0

將「foo」更改爲用戶輸入。 –

+0

我想我只是不知道該怎麼做。當我將輸入變量(string1)的名稱替換爲「foo」時,我仍然得到String.format(「%3s」,string1).replace('','*');的超範圍異常。 – User2

0

把驗證像下面並添加字符串。 例如。

if(string1.length()<3){  
     String op = 'xx'; 
     string1 += op; 
}