一多半是编码问题,但是找不出来修改方案:
package com.han;import java.io.IOException;
import java.nio.charset.Charset;public class CSDN_Forum_1 { public CSDN_Forum_1() {
// TODO Auto-generated constructor stub
byte[] b = new byte[1024];
System.out.println(Charset.defaultCharset().name());
try {
System.out.print("请你输入性别: ");
int length = System.in.read(b);
String input = new String(b, 0, length);
System.out.println(input);
if (input.equals("男")) {
System.out.println("先生你好");
} else if (input.equals("女")) {
System.out.println("女士你好");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // // the second method
// System.out.print("请你输入性别: ");
// String input = new Scanner(System.in).next();
// boolean sex = "男".equals(input);
// if (sex)
// System.out.println("先生你好");
// else
// System.out.println("女士你好"); } /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new CSDN_Forum_1();
}}
求解释~~~
package com.han;import java.io.IOException;
import java.nio.charset.Charset;public class CSDN_Forum_1 { public CSDN_Forum_1() {
// TODO Auto-generated constructor stub
byte[] b = new byte[1024];
System.out.println(Charset.defaultCharset().name());
try {
System.out.print("请你输入性别: ");
int length = System.in.read(b);
String input = new String(b, 0, length);
System.out.println(input);
if (input.equals("男")) {
System.out.println("先生你好");
} else if (input.equals("女")) {
System.out.println("女士你好");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // // the second method
// System.out.print("请你输入性别: ");
// String input = new Scanner(System.in).next();
// boolean sex = "男".equals(input);
// if (sex)
// System.out.println("先生你好");
// else
// System.out.println("女士你好"); } /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new CSDN_Forum_1();
}}
求解释~~~
解决方案 »
- 为什么在按钮上图标无法显示出来??路径没有错
- 关于JTAPI的问题,请求高手指点迷津
- JNDI除了能配置jdbc的datasource之外,能不能读取其他配置参数,比如定义一些业务参数在里面
- 各位大哥,怎样添加音频?
- getWidth怎么用呀???????????????
- 请问为何我的JUnit Test出现了NullPointerException的错误呢
- frame里面一个按钮点了执行另外一个类程序的问题
- 请问我如何用java打开一个word文档,就像双击文档一样,系统调出word!
- 请教各们高手。你们用的术语B/S,C/S是什么意思?
- 请教各路大神一个问题:try-catch中synchronized语句块抛出异常
- 某公司技术岗笔试题
- timer 定时任务无法执行
if (input.equals("男\r\n")) {//input 除了"男"编码2个字节外,还有"\r\n"
System.out.println("先生你好");
} else if (input.equals("女\r\n")) {
System.out.println("女士你好");//一样
}
这样就行了:
import java.io.IOException;
import java.nio.charset.Charset;
public class CSDN_Forum_1 {
public CSDN_Forum_1() {
// TODO Auto-generated constructor stub
byte[] b = new byte[1024];
System.out.println(Charset.defaultCharset().name());
try {
System.out.print("请你输入性别: ");
int length = System.in.read(b);
String input = new String(b, 0, length);
System.out.println(input);
if (input.equals("男\r\n")) {
System.out.println("先生你好");
} else if (input.equals("女\r\t")) {
System.out.println("女士你好");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// // the second method
// System.out.print("请你输入性别: ");
// String input = new Scanner(System.in).next();
// boolean sex = "男".equals(input);
// if (sex)
// System.out.println("先生你好");
// else
// System.out.println("女士你好");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new CSDN_Forum_1();
}
}
package com.han;import java.io.IOException;
import java.nio.charset.Charset;/**
* 必须在Eclipse Common属性中设置encoding为GBK。这个是用于System.in将命令行的汉字编码
* 为字节的。
* @author HAN
*
*/
public class Encoding_1 { public Encoding_1() {
// TODO Auto-generated constructor stub
byte[] b = new byte[1024];
System.out.println(Charset.defaultCharset().name());
try {
System.out.print("请你输入性别: ");
int length = System.in.read(b);
System.out.println(length);
// 再重新从bytes到chars要使用相同的解码,另外,InputStream还包括了"\r\n"
String input = new String(b, 0, length-2, "GBK");
System.out.println(input + input.length());
if (input.equals("男")) {
System.out.println("先生你好");
} else if (input.equals("女")) {
System.out.println("女士你好");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Encoding_1();
}}package com.han;import java.util.Scanner;/**
* 必须在Eclipse Common属性中设置encoding为GBK。这个是用于System.in将命令行的汉字编码
* 为字节的。
* @author HAN
*
*/
public class Encoding_2 { public Encoding_2() {
System.out.print("请你输入性别: ");
// 再重新从bytes到chars要使用相同的解码
String input = new Scanner(System.in, "GBK").next();
boolean sex = "男".equals(input);
if (sex)
System.out.println("先生你好");
else
System.out.println("女士你好"); } /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Encoding_2();
}}package com.han;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;/**
* 必须在Eclipse Common属性中设置encoding为GBK。这个是用于System.in将命令行的汉字编码
* 为字节的。
* @author HAN
*
*/
public class Encoding_3 { public Encoding_3() {
// TODO Auto-generated constructor stub
System.out.println(Charset.defaultCharset().name());
try {
System.out.print("请你输入性别: ");
// 再重新从bytes到chars要使用相同的解码
String input = new BufferedReader(new InputStreamReader(System.in, "GBK")).readLine();
System.out.println(input + input.length());
if (input.equals("男")) {
System.out.println("先生你好");
} else if (input.equals("女")) {
System.out.println("女士你好");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Encoding_3();
}}
在Eclipse的Run Configuration的Common中修改Encoding为GBK(因为默认是UTF-8)。好像是设置的defaultCharset,可以通过System.out.println(Charset.defaultCharset().name());来查询。我们怎么通过程序代码来实现设置defaultCharset呢?
+1