java问题:比较两个text,在eclipse里运行正常,为什么用命令控制符运行,输出时字符不同处会变成数字? 20

packageTest_Beat_Test;importjava.io.FileReader;importjava.io.IOException;publicclassT... package Test_Beat_Test;

import java.io.FileReader;
import java.io.IOException;

public class Test_Beat_Test {
public static void main(String[] args) throws IOException {
FileReader texta = new FileReader("C:\\Users\\Administrator\\Desktop\\a.txt");
FileReader textb = new FileReader("C:\\Users\\Administrator\\Desktop\\b.txt");
int a = texta.read();
int b = textb.read();
while(a != -1 & b != -1) {
if(a == b) {
System.out.print((char)a);
}else {
System.out.print(" " + (char)a + (char)b + " ");
}
a = texta.read();
b = textb.read();
}
texta.close();
textb.close();
}
}
展开
 我来答
图表生活
2018-09-03 · TA获得超过925个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:237万
展开全部

你现在代码这样写,输出的不会是数字,而应该是字符。

a和b是读取的一个字符,已int型来表示,直接输出当然是数字了,并且会输出和:

System.out.print(a + b);

如果转换成char,你再进行+运算,java会认为你又想求和,所以会自动转换为int求和,输出数字和:

System.out.print((char)a + (char)b );

要想输出啷个字符,你程序中那样写就可以,也可以这样:

System.out.print( (char)a +""+ (char)b );

(char)a +""会被认为一个字符和一个字符串连接,结果是字符串,再+ (char)b又是连接。

追问
我写的是 System.out.print(" " + (char)a + (char)b + " ");
你写的是System.out.print( (char)a +""+ (char)b );
两条语句效果应该是一样的吧。但上面这个在命令控制符里会输出错误,输出了数字。在eclipse里是输出正确的,空格加字母;
为啥一个错误,一个正确?
追加提问:百度知道里,怎么让代码有格式。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式