You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java将整数数组中的所有偶数替换为特殊符号'$'?

问题:将整数数组中的偶数替换为'$'符号

给定整数数组,需求是把所有偶数替换为符号'$',但运行代码后输出的是'$'的ASCII值42,而非符号本身。

原代码

int[] array = {1, 2, 3, 4, 5, 6};
char specialChar = '$';

for (int i = 0; i < array.length; i++) {
    if (array[i] % 2 == 0) {
        array[i] = specialChar;
    }
}

System.out.println(Arrays.toString(array));

实际输出

[1, 42, 3, 42, 5, 42]

期望输出

[1, $, 3, $, 5, $]


问题原因

你使用的是int[]类型数组,Java中当把char类型值赋值给int变量时,会自动将字符转换为对应的ASCII码值($的ASCII码为42),因此数组中存储的是数字42而非$符号。


解决方案

方案1:使用Object[]数组存储混合类型

将数组类型改为Object[],这样可以同时存放整数和字符:

Object[] array = {1, 2, 3, 4, 5, 6};
char specialChar = '$';

for (int i = 0; i < array.length; i++) {
    // 先将元素转为int类型再判断奇偶
    if ((int) array[i] % 2 == 0) {
        array[i] = specialChar;
    }
}

System.out.println(Arrays.toString(array));

方案2:保持int[]数组,自定义输出逻辑

如果不想修改数组类型,可以在输出时判断元素是否为$的ASCII值,替换为符号后输出:

int[] array = {1, 2, 3, 4, 5, 6};
char specialChar = '$';

for (int i = 0; i < array.length; i++) {
    if (array[i] % 2 == 0) {
        array[i] = specialChar;
    }
}

// 构建自定义输出字符串
StringBuilder result = new StringBuilder("[");
for (int i = 0; i < array.length; i++) {
    if (array[i] == (int) specialChar) {
        result.append(specialChar);
    } else {
        result.append(array[i]);
    }
    if (i != array.length - 1) {
        result.append(", ");
    }
}
result.append("]");
System.out.println(result);

内容的提问来源于stack exchange,提问作者Arya V L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:09:24