2013-11-21 28 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()'获取当前字符。基本上只是结合你的帖子和我的答案,你很好。 –