今天上掏你屋的博客是看到上面的一段代码,把字母转换为大写的,博客上说遇到中文会乱码,在网上找了一下没找到答案,求教各位大牛~~~~
代码的地址是:http://www.taoniwu.com/archives/3000.htmlpackage com.taoniwu.io;
import java.io.*;public class TestTransForm2 {
/**
 * @param args
 */
public static void main(String[] args) {
//创建对象,让用户输入字符串
InputStreamReader is = new InputStreamReader(System.in);
//创建BufferedReader对象读取用户输入的字符串
BufferedReader br = new BufferedReader(is);
try{
//读取一行字符串
String bw = br.readLine();;
//循环读取字符串
while(bw != null){
//判断用户输入是否为exit,是则退出
if(bw.equalsIgnoreCase("exit")){
break;
}
//把用户输入的字母全部转换为大写
System.out.println(bw.toUpperCase());
bw = br.readLine();
}
br.close();
}catch(Exception e){
System.out.println(e+"错误");
}
}
}

解决方案 »

  1.   

    bw.toUpperCase(Locale.ENGLISH)
    指定语言转换区域为英语...
      

  2.   

    再或者自己写转换函数 private static final int A_LEN = 'A' - 'a'; public static String toUpperCase(String str) {
    StringBuffer sb = new StringBuffer();
    int len = str.length();
    for (int i = 0; i < len; i++) {
    char c = str.charAt(i);
    if (c <= 'z' && c >= 'a') {
    sb.append((char) (c + A_LEN));
    } else {
    sb.append(c);
    }
    }
    return sb.toString();
    }
      

  3.   


    ++
    不过我试了下,UTF-8环境下,没有乱码的哦~