1.在Windows窗口编译运行Java程序时,出现编译正常,运行乱码。
示例:
public class javalover{
public static void main(String[] args) {
System.out.println("我喜欢学习java");
}
}
我们将以上代码,在Windows窗口进行编译和运行:出现了下面这种情况:发现编译正常,运行出来是乱码。
这种情况下:我的解决方法是
第一种:重新保存文件,重新保存时将encoding(红色划线处)改为ANSI,再次在windows窗口运行;
此时编译运行结果正常,如图所示:
第二种方法就是在编译时,输入:Javac -encoding utf8 javalover.java
也就是在原来编译的代码字符基础上,在javac和Java文件名之间输入-encoding utf8
如图:我们一样可以运行成功。
如果保存时选择的是其他格式,只需要将utf8改为相应的格式就可以。
如保存为unicode格式:我们改utf8为unicode即可。
如出现:类javalover是公共的, 应在名为 javalover.java 的文件中声明。
这种情况一般是类名和保存的文件名不一致,只需要将文件名改为类名即可。
现有Java程序:
package com.sxt;
import java.util.Scanner;
public class jisuanqi{
public static void main(String[] args) {
boolean ture;
System.out.println("欢迎使用计算器!");
while(ture){
if(new jisuanqi().input_output()){
}else{
System.out.println("谢谢使用计算器OVER");
break;
}
}
}
int count_data(int data1,int data2,String sign){
int data = 0;
if(sign.equals("+")){
data = data1 + data2;
}else if(sign.equals("-")){
data = data1 - data2;
}else if(sign.equals("*")){
data = data1 * data2;
}else if(sign.equals("/")){
data = data1 / data2;
}else{
data = -999999999;
}
return data;
}
boolean input_output;
{
System.out.print("请输入第一个整数:");
Scanner scanner = new Scanner(System.in);
String I= scanner.nextLine();
int data1 =Integer.valueOf(I);
System.out.print("请输入运算符号:");
String sign = scanner.nextLine();
System.out.print("请输入第二个整数:");
int data2 = Integer.valueOf(scanner.nextLine());
int data = new jisuanqi().count_data(data1,data2,sign);
if(data ==-999999999){
System.out.println("计算结果错误!");
}else{
System.out.println("计算结果是:"+data);
}
System.out.println("是否继续Y/N");
String contu = scanner.nextLine();
if("Y".equals(contu) ||"y".equals(contu)){
return ture;
}else{
return false;
}
}
}
以上第八行
if(new jisuanqi().input_output()){显示有误以及
第49行retuen turn;
第51行return false;显示有误。
暂时,我还不知道是什么原因。希望道友指点一二。