0

0

Java数组扩容后输出结果异常:为什么我的数组元素值都比预期大了9?

霞舞

霞舞

发布时间:2025-03-11 10:30:01

|

883人浏览过

|

来源于php中文网

原创

java数组扩容后输出结果异常:为什么我的数组元素值都比预期大了9?

Java数组扩容及数据输出异常分析

本文分析一段Java代码中数组扩容后输出结果异常的原因。代码意图是对整数数组进行扩容,添加新元素。原始数组为{1, 2, 3},添加元素4后,预期结果为{1, 2, 3, 4},但实际输出却是{10, 11, 12, 13}。

问题代码及分析:代码使用创建新数组的方式扩容。首先创建一个比原数组长度大一的数组arr2,复制arr1元素到arr2,然后添加新元素4。最后将arr2赋值给arr1,完成扩容。

问题代码片段:

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

Multiavatar
Multiavatar

Multiavatar是一个免费开源的多元文化头像生成器,可以生成高达120亿个虚拟头像

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

        System.arraycopy(arr1, 0, arr2, 0, arr1.length); //更优的数组复制方式
        arr2[arr1.length] = 4;
        arr1 = arr2;

        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + "\t"); //问题出在这里
        }
    }
}

错误原因:问题不在扩容逻辑,而在于输出语句System.out.print(arr1[i] + "\t");"\t"是制表符,ASCII码为9。输出语句将数组元素与制表符的ASCII码值进行了隐式加法运算,导致输出结果比预期值大9。

解决方案:修改输出语句,去除制表符:System.out.print(arr1[i] + " "); 或者 System.out.println(arr1[i]);

修改后的代码:

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

        System.arraycopy(arr1, 0, arr2, 0, arr1.length);
        arr2[arr1.length] = 4;
        arr1 = arr2;

        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + " "); //修改后的输出语句
        }
    }
}

结论:此问题强调了代码细节的重要性。细微的错误,例如不恰当使用制表符导致隐式类型转换和运算,都会造成程序输出结果的偏差。 我们应该避免不必要的隐式类型转换和字符运算,以确保代码的准确性和可靠性。 此外,使用System.arraycopy()方法比循环复制更有效率。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

186

2023.09.27

C++类型转换方式
C++类型转换方式

本专题整合了C++类型转换相关内容,想了解更多相关内容,请阅读专题下面的文章。

301

2025.07.15

常见的编码方式
常见的编码方式

常见的编码方式有ASCII编码、Unicode编码、UTF-8编码、UTF-16编码、GBK编码等。想了解更多编码方式相关内容,可以阅读本专题下面的文章。

600

2023.10.24

a和A对应的ASCII码数值
a和A对应的ASCII码数值

a的ascii码是65,a的ascii码是97;ascii码表中,一个字母的大小写数值相差32,一般知道大写字母的ascii码数值,其对应的小写字母的ascii码数值就算出来了,是大写字母的ascii码数值“+32”。想了解更多相关的内容,可阅读本专题下面的相关文章。

2154

2024.10.24

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

32

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

23

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

28

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

6

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

9

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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