为角色添加数字以使其成为另一个角色

时间:2015-04-05 16:21:36

标签: java ascii letters

我想要一个字符,为它添加数字并获得另一个char(a+2=c)

    int leng,leng2;
    String word = "";
    String key = "";
    String enc ="";
    char x;
    char z;
    char tost;
    System.out.println("gimme word");
    word=in.next();
    System.out.println("gimme key");
    key=in.next();
    leng=word.length();
    leng2=key.length();

    for(int i=1;i<=leng;i++)
    {
        z=word.charAt(i-1);
        x=key.charAt(i-1);
        int plus=z + x;
        tost=(char)plus;
        enc=enc+tost;
        System.out.println(enc);
        System.out.println(tost);
        System.out.println((char)z);
        System.out.println((char)x);
        System.out.println(plus);
        System.out.println((char)plus);
    }

我希望它打印c,在我的代码中,我用charAt执行,因为我有一个完整的字符串,我试图搜索许多解决方案,并尝试了很多东西,他们都没有悲伤地工作。

编辑:根据要求启用完整代码 char加上的方式不起作用,并说这是一个错误

4 个答案:

答案 0 :(得分:1)

如果你想对整个字符串执行此操作,那么你可以使用for循环 -

String r= "abc"; 
int x=2;

for(i=0; i<r.length(); i++){
  char z= r.charAt(0);  
  int plus=z+x; 
  System.out.println((char)plus);
}  

查看System.out.println()处的类型转换。由于plusint,您必须明确地将其转换为char

答案 1 :(得分:0)

您需要char plus=z+x;而不是plus=r+x;

这会为字符a添加2,从而产生字符c

您可以使用以下方式打印:

System.out.println(plus);

答案 2 :(得分:0)

您的代码

String r= "abc";  
int x=2;
char z= r.charAt(0);  
plus=r+x                                       // wrong do int plus=z+x;  
String plus2=(String)String.valueOf(plus);     //not required
System.out.println(plus2);                     // plus not defined

更正代码

String r= "abc";  
int x=2;
char z= r.charAt(0);  
int plus=z+x;  
System.out.println((char)plus);

输出

c

Demo

编辑后

只更改一行

int plus=z + Character.getNumericValue(x);

Demo

答案 3 :(得分:0)

它甚至不应该编译。您尚未声明变量加号。您还想将2添加到存储在z中的r的索引零处的字符处。所以你必须将x添加到z。做这样的事情

String r = "abc";  
int x = 2;
char z = r.charAt(0);
char plus = z + x;
System.out.println(plus);