例如,如果我正在执行for循环,如下所示:
假设字符串已经变为char数组
for(i=0;i<somestring.length;i++)
somestring[i] = somestring[i] + i;
为什么以前没有工作?
答案 0 :(得分:2)
char + int
的结果是int
- 因此您需要投放到char
:
char[] charArray = text.toCharArray();
for (int i = 0; i < charArray.length; i++) {
charArray[i] = (char) (charArray[i] + i);
}
或者使用+=
时可用的隐式转换:
char[] charArray = text.toCharArray();
for (int i = 0; i < charArray.length; i++) {
charArray[i] += i;
}
但是,通常对字符执行算术是一个坏主意。请记住,您可以通过这种方式轻松获得不可打印的字符。你想要实现什么目标?