首页 > Java > java教程 > 正文

Java数组扩容后输出结果异常:为什么我的程序打印出10 11 12 13而不是1 2 3 4?

碧海醫心
发布: 2025-03-13 19:10:06
原创
408人浏览过

java数组扩容与异常输出:为什么打印结果是10、11、12、13而不是1、2、3、4?

本文分析一个Java数组扩容示例中出现的异常输出问题。程序意图是动态向数组添加元素,但输出结果与预期不符。

问题描述: 程序旨在将元素4添加到初始数组int[] arr = {1, 2, 3}的末尾,使其变为 {1, 2, 3, 4}。程序通过创建新数组,复制原数组元素,添加新元素,再将新数组赋值给原数组变量的方式实现扩容。然而,程序输出的结果却是10、11、12、13,而非预期的1、2、3、4。

Java数组扩容后输出结果异常:为什么我的程序打印出10 11 12 13而不是1 2 3 4?

代码分析: 程序的扩容逻辑本身是正确的。问题出在输出语句System.out.println(arr1[i] + '\t');中使用了制表符'\t'。Java会将字符'\t'隐式转换为其ASCII码值(9),导致程序实际执行的是arr1[i] + 9,从而输出10、11、12、13。

立即学习Java免费学习笔记(深入)”;

错误代码片段:

public class AddToArray {
    public static void main(String[] args) {
        int arr1[] = {1, 2, 3};
        int arr2[] = new int[arr1.length + 1];

        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        arr2[arr1.length] = 4;
        arr1 = arr2; // 关键:将新数组赋值给原数组变量

        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i] + '\t'); // 错误:这里加了制表符
        }
    }
}
登录后复制

解决方案: 为了得到正确的结果,只需修改输出语句,去除制表符:

System.out.println(arr1[i]); // 正确:去除制表符
登录后复制

修正后的代码:

public class AddToArray {
    public static void main(String[] args) {
        int arr1[] = {1, 2, 3};
        int arr2[] = new int[arr1.length + 1];

        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        arr2[arr1.length] = 4;
        arr1 = arr2;

        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]); // 修正后的输出语句
        }
    }
}
登录后复制

修正后的代码将正确打印出1、2、3、4。 这个例子强调了在Java中进行字符串连接和数值运算时,需要仔细注意数据类型转换和隐式类型转换带来的潜在问题。

以上就是Java数组扩容后输出结果异常:为什么我的程序打印出10 11 12 13而不是1 2 3 4?的详细内容,更多请关注php中文网其它相关文章!

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号