gpt4 book ai didi

java - 字符输出错误

转载 作者:行者123 更新时间:2023-12-02 04:17:15 25 4
gpt4 key购买 nike

所以我的程序可以正常工作,因此它能够将某个位置的字符向右或向左移动。但是,一旦文本被移动,它就不包含空格,并且无法处理异常字符,例如 ^^''#,只会将它们吐出。希望有人能给我一个总体的想法/建议来解释为什么。过去几个小时一直试图解决这个问题,但一无所获。

public class hh {
public static void main(String[] args) {
String line = "the spa^^^ce doesn't show***";
char[] buffer = line.toCharArray();

for (int i = 0; i < buffer.length; i++) {
char element = buffer[i];
element = (char) (element + 5);
if (element > 'z') {
element = (char) (element - 26);
} else if (element < 'a') {
element = (char) (element + 26);
}
buffer[i] = element;
}
System.out.println(new String(buffer));
}
}

输出:

ymj?xufccchj?itjxsFy?xmtbIII

最佳答案

在下面的行中,您将字符增加 5,因此所有空格都将转换为“%”:

element = (char) (element + 5);

由于该值小于“a”,因此您再次将其增加 26:

element = (char) (element + 26);

这会将其变成问号,请参阅http://www.asciitable.com/

为了防止这种情况,您可以添加一个条件,例如:

if (element != ' ')
{
// increase by 5, etc...
}

您可能想看看:

Character.isLetter(element);

关于java - 字符输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com