Java 可以将1添加到字符数组,不能将k添加到k=1的同一数组。。为什么?

Java 可以将1添加到字符数组,不能将k添加到k=1的同一数组。。为什么?,java,arrays,char,int,Java,Arrays,Char,Int,编辑:如何让这个while函数工作。我希望k被添加到vektor[x]插槽中的任何内容中 char vektor[]=str.toCharArray(); int k =0, x=4; while(x>0){ vektor[x]=(char)vektor[x]+k; System.out.println(vektor[x]); x--; k++; } 您必须将chast转换为char,请尝试以下操作: ve

编辑:如何让这个while函数工作。我希望k被添加到vektor[x]插槽中的任何内容中

char vektor[]=str.toCharArray();
int k =0, x=4;
    while(x>0){
        vektor[x]=(char)vektor[x]+k;
        System.out.println(vektor[x]);
        x--;
        k++;

    }

您必须将chast转换为char,请尝试以下操作:

vektor[k]=(char)(kl+'A');

我忘了在最后一部分加括号。这应该起作用

您没有声明k变量吗? vektor[k]不存在

vektor[kl] = kl + 'A';
然而,这个表达式将产生一个整数。你必须使用石膏

vektor[k] = (char) (kl + 'A');

int和char是两种不同的简单类型。然而,int可以转换为char。这就是当您执行char c='a'+1时发生的情况;编译器发现,对“a”+1的求值需要是一个char,并向其添加强制转换


但是,当您尝试将声明的int添加到char时,编译器会假定该声明的int是int,并且没有char,并且会发生错误。告诉编译器您知道自己在做什么的方法是添加一个显式cast:charArray[i]=char kl+'a';。现在,首先将“a”转换为int,加法完成,返回的int转换为char。

如果不起作用,则可能会出现错误消息。这只是一种预感,但您可能需要将k1+'a'的结果强制转换为字符的int。其中k是为vektor[k]定义的?如前所述,您可能正在向字符添加Int,而运算符可能不喜欢。使用vektor[x]+=k,因为其中包含隐式强制转换,因此您不能再强制转换。假设k是在较早时定义的,但我如何在while函数中使用它,这是整点。像下面一样,我想将k添加到vektor[x]内部的变量中。我尝试了以下错误的'vektor[x]=charvektor[x]+kl;'在花括号周围放上。维克托[x]=维克托[x]+kl