我的程序中存在一个问题,它将替换输入的字符串中的每个字符(特别是来自args [x])。
我能够获得字符串中的第一个字符,但我不知道该怎么做才能转到下一个字符。我尝试了下面的“ctr ++”,但它只会循环字符串的第一个字符。
结果是:
字符串:aei
解密:ZZZ
我需要的是:
字符串:aei
解密: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 :(得分:2)
嗯,问题是你永远不会改变letter
的值。您需要将args[x].charAt(ctr)
替换为letter = args[x].charAt(ctr)
。
答案 1 :(得分: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
}
}
}
}
答案 2 :(得分: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
}
}
试试这个。祝你好运