JAVA怎么从文件中把数字读取出来并且放到一个数组中呢?

我这个在list中还是正常的呢怎么一到num数组中就乱码了publicclassSolution{publicstaticvoidmain(String[]args)th... 我这个在list中还是正常的呢怎么一到num数组中就乱码了
public class Solution {
public static void main(String[] args) throws IOException{
//在此编写你的代码
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream inStream = new FileInputStream(reader.readLine());
char[] list=new char[inStream.available()];
int i=0;
while (inStream.available()>0){
char data=(char) inStream.read();
list[i]=data;
i++;
}
int[] num=new int[list.length];
for(int j=0;j<num.length;j++){
num[j]=list[j]-'0';
}
}
}
展开
 我来答
澈丶233
2020-06-02 · TA获得超过169个赞
知道小有建树答主
回答量:446
采纳率:94%
帮助的人:101万
展开全部

我按照你的代码:

编写1.txt文件:

代码修改为:

结果就是这样的,不是错,因为你的list[]定义的是char数组,可以正确的显示出字符,但是你的num[]定义的是int数组,相当于把char转换成了int,而char转换成int时,实际值为该字符对应的ASCII码

首先我们查一下ASCII码,找到字符'0'对应的十进制数(即int的值):

是48,也就是说,字符'0'相当于十进制数48,所以读我的1.txtx文件,第一个字符是'1',你的num[j]=list[j]-'0'计算的时候,就是'1'-'0'相当于49-48=1,所以字符1打印出来就是1。

然后我们看我1.txt的第4个字符,是'a',找到'a'的码值:

所以'a'-'0'相当于97-48=49,所以打出来的结果才是49,同理就可以得出了字符'b'、'c'、'!'、'@'、'#'减'0'后的结果了。

严肃的甲道士
2020-06-02 · 传播技术传播爱,笔芯❤️
严肃的甲道士
采纳数:337 获赞数:618

向TA提问 私信TA
展开全部
1、num[j]=list[j]-0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式