在return语句中转换打印输出的char



不能使用数组只想打印出convert或convert在if语句后会说什么作为返回

无法使用.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;

字符串是不可变的,不能只替换同一字符串中的一个字母。您必须在前一个字符串的基础上构造一个新字符串。一种方法是迭代旧字符串中的每个字符,并将其添加到新字符串中,同时替换所需的字符。

建议使用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();

最新更新