如何用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
相关产品推荐
相关产品推荐

