我想要一个字符,为它添加数字并获得另一个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加上的方式不起作用,并说这是一个错误
答案 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()
处的类型转换。由于plus
是int
,您必须明确地将其转换为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
编辑后
只更改一行
int plus=z + Character.getNumericValue(x);
答案 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);