JAVA编程笔记02-字符、数组

本文深入探讨了JAVA中字符、数组的基本概念与操作技巧,详细分析了文本文件中 和 的区别及其在不同系统中的含义,揭示了在Java字符串中单独 的特殊行为,同时提供了Arrays.copyOf方法使用时避免空指针异常的有效策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA编程笔记02-字符、数组


文本文件中的“\r”和“\n”

首先我们了解一下回车和换行:
(char)13代表回车,(char)10代表换行。
回车是把光标或指针移动到一行的开头,换行是把光标移动到下一行的相同位置。
在不同的系统中“\r”和“\n”可能意义不同。


下图直接说明了“\n”=(char)10,“\r”=(char)13,在记事本中“\r”、“\n”、“\r\n”“\r\n”代表一个换行,“\n\r”代表两个换行。记事本的换行等于加上“\r\n”。

这就很奇怪了,如果“\r”=13,“\n”=10,那么“\n\r”应该等同于“\r\n”,并且“\r”不能换行。然而抱歉,没有查到相关资料,我无法解释。

请注意控制台上返回的结果中没有“4”,经过多次测试证实:在Java的String字符串中,单独的“\r”(前或后面没有跟“\n”)前面或后面的一个字符会被忽略。实际上String的长度没有变,表明被忽略的内容其实还在。这很奇怪,希望知道的人评论一下吧。
在这里插入图片描述


“/r”和“/n”算位置吗?

算,并且每个占一个字符,只是readLine()不会返回二者。用read()可以读到。

试了下读第二行,也没有返回“\r”和“\n”,没有截图。


使用Write()方法写完数据后如果不关闭Writer()(“.close()”),后面直接跟上的Reader不会读取刚刚写下的内容,这说明Writer的工作是在close()时开始进行的;
在这里插入图片描述


Arrays空指针错误

用Arrays.copyOf(array1,newlength)产生的新数组末位是null而不是一个地址。因此如果在代码中用到了:
array1 = Arrays.copyOf(array1,newlength);
之后没做特殊处理又引用到:array1[array1.length-1][n],n∈自然数,编译器就会报错,因为array1[array1.length-1] == null。
处理办法之一是赋一个数组(的地址)给对应位置。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值