2013-11-21 51 views
-3

不能使用數組 只想打印出轉換或if語句作爲返回後會說什麼轉換將打印出字符在return語句

不能使用.toCharArray

public static void main (String[] arg) { 
    System.out.println(ConvertToL33t("cow life")); 
} 

public static String ConvertToL33t (String s) 
{ 

    String max= s; 
    System.out.println(max); 
    char convert = (char) s.toLowerCase().charAt(0); 
    for(int i = 0; i < max.length(); i++){ 
     switch(convert){ 

     case 'e': 
      convert = '3'; 
      break; 
     case 'o': 
      convert = '0'; 
      break; 
     case 'l': 
      convert = '1'; 
      break; 
     case 't': 
      convert = '7'; 
      break; 
     case 'a': 
      convert = '4'; 
      break; 
     } 
    } 
return convert; 
+1

我不能在第一行解析英語。請重新說明。 – hexafraction

+0

我沒有看到'if'語句......你是指'switch'嗎? –

回答

2

字符串是不可變,你不能只替換同一個字符串中的一個字母。你將不得不根據以前的字符串構造一個新的字符串。一種方法是迭代舊字符串中的每個字符,並將其添加到新字符串中,同時替換所需的字符。

建議使用StringBuilder,因爲它在恆定級聯下效率更高。

嘗試一些沿着這些路線:

StringBuilder sb = new StringBuilder(); 
for(char convert : s.toCharArray()){ 
    switch(convert){ 
     case 'e': 
      sb.append("3"); 
      break; 
     case 'o': 
      sb.append("0"); 
      break; 
     case 'l': 
      sb.append("1"); 
      break; 
     case 't': 
      sb.append("7"); 
      break; 
     case 'a': 
      sb.append("4"); 
      break; 
     } 
} 

return sb.toString(); 
+0

+1僅用於回答問題並將剩下的作爲學習體驗:-) –

+0

我無法使用數組即可得到問題 – user3015113

+0

@ user3015113:母題不允許我在生命威脅以外的情況下使用我的智力閱讀能力,抱歉。 - 實際:自己構建它!循環使用字符串並使用'charAt()'獲取當前字符。基本上只是結合你的帖子和我的答案,你很好。 –