gpt4 book ai didi

java - 将 char 附加到 char 数组 java

转载 作者:行者123 更新时间:2023-12-02 05:00:11 26 4
gpt4 key购买 nike

我正在尝试编写一个接收并返回字符数组的方法。我想用“h”“i”替换每个空格“”。我无法使用字符串类或任何其他辅助类。我在“total+= ch;”时陷入困境因为它们是两种不同的类型。
我想要什么

char[] characterStr = {'w','h','a','t','s',' ','u','p'}
System.out.println(characterStr);
System.out.println(Space(characterStr));

whats up
whatshiup

到目前为止我的代码:

public static char[] Space(char[] input){
char[] total;

for(char ch: input){
if(ch==' '){
ch = 'h'+'i';
total += ch;
}
else{
total += ch;
}

return total;

最佳答案

你的根本问题似乎是你似乎不明白如何 arrays使用 Java 工作。

在 Java 中,数组具有固定长度,并且每个位置只能保存一个声明的数据类型。例如,如果你有这个 char[]: [w, h, a, t, s, , u, p],它的长度将永久固定为8

您可以替换给定位置的字符,但如果多次执行此操作,则只会覆盖该值。

    char[] characterStr = {'w','h','a','t','s',' ','u','p'};
characterStr[5] = 'h'; // [w, h, a, t, s, h, u, p]
characterStr[5] = 'i'; // [w, h, a, t, s, i, u, p]

此外,您不能使用 += 尝试附加值:

    char[] characterStr = {'w','h','a','t','s',' ','u','p'};
characterStr += 'h'; // compile error! operator += is undefined for these arguments

您必须使用 arrayname[index] = value; 语法为给定位置分配一个值。

您需要做的(如评论中所述)首先通过计算原始数组中的空格数来计算您尝试创建的数组的大小。您已经在循环并查找空格,因此您只需替换尝试用计数修改数组的代码,并根据该大小创建输出数组:

    int size = input.length;
for (char ch: input) {
if (ch == ' ') {
size += 1;
}
}
char[] total = new char[size];

另请注意,我不仅仅将 total 声明为 char[] 类型的变量,而是使用了 new 关键字实际上创建它。与其他对象一样,Java 中的数组需要显式创建,否则当您尝试使用它时将会出现 NullPointerException

创建新数组后,您可以循环遍历原始输入数组并复制非空格字符(或 'h''i'当您看到空格时)。

您不想为此使用 for-each 循环,因为您需要手动跟踪数组索引。 (提示:一旦看到空格,输入数组的索引和输出数组的索引将不相同)。

关于java - 将 char 附加到 char 数组 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351566/

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