2014-02-15 9 views
1

У меня проблема в моей программе, которая заменит каждый символ в введенной строке (в частности, из args [x]).Перейти к следующему charAt()

Я могу получить первый символ в строке, но то, что я не знаю, как это сделать, - это переход к следующему символу. Я попробовал «ctr ++» ниже, но он будет только зацикливать 1-й символ строки.

Результатом является:
Строка: АЕИ
Расшифровать: ZZZ

Что мне нужно:
Строка: АЕИ
Расшифровать: ZYX

Вот сегмент моего кода:

for(int a = 0; a < len; a++) 
       { 
        args[x].charAt(ctr); 
        switch (letter) 
         { 
          case 'a': System.out.print("Z"); break; //1 

          case 'e': System.out.print("Y"); break; //2 

          case 'i': System.out.print("X"); break;  //3 

          case 'o': System.out.print("W"); break; //4 

          case 'u': System.out.print("V"); break; //5 

          case 'A': System.out.print("z"); break;  //6 

          case 'E': System.out.print("y"); break;  //7 

          . 
          . 
          . 
          . 
         } 
         ctr++; 
        } 

Было бы полезно, если бы кто-нибудь мог помочь.

+0

Где вы указываете 'письмо'? –

+0

Можете ли вы указать, что такое «len», «x» в args [x] и откуда это «письмо»? –

ответ

2

Ну, ваша проблема в том, что вы никогда не меняете значение letter. Вам необходимо заменить args[x].charAt(ctr) на letter = args[x].charAt(ctr).

+0

Это сделало это! Я думал, что значение изменится, потому что письмо было в другом классе. Большое спасибо! – user3313601

+0

Когда вы вызываете 'charAt()', вы ничего не меняете - вы просто получаете персонажа. Если вы ничего не делаете с этим символом (например, храните его в переменной или передаете его другой функции), метод ничего не делает. –

0
String str = "aei"; 
     for(int a = 0; a < str.length(); a++) 
     { 
      char letter = str.charAt(a); 
      switch (letter) 
       { 
        case 'a': System.out.print("Z"); break; //1 

        case 'e': System.out.print("Y"); break; //2 

        case 'i': System.out.print("X"); break;  //3 

        case 'o': System.out.print("W"); break; //4 

        case 'u': System.out.print("V"); break; //5 

        case 'A': System.out.print("z"); break;  //6 

        case 'E': System.out.print("y"); break;  //7 

       } 
      } 

Попробуйте это. Удачи

1

Поскольку вы не опубликовали весь код, не совсем ясно, чего вы пытаетесь достичь. Но это то, что могло бы помочь

public class StackOverflow { 

public StackOverflow(){ 

} 
public static void main(String[] args){ 

    for(int x = 0, len = ((String)args[0]).length(); x < len; x++) 
      { 
       char letter = args[0].charAt(x); 

       switch (letter) 
        { 
         case 'a': System.out.println("Z"); break; //1 

         case 'e': System.out.println("Y"); break; //2 

         case 'i': System.out.println("X"); break;  //3 

         case 'o': System.out.println("W"); break; //4 

         case 'u': System.out.println("V"); break; //5 

         case 'A': System.out.println("z"); break;  //6 

         case 'E': System.out.println("y"); break;  //7 

        } 
       } 
    } 
} 
Смежные вопросы