每次输入一个汉字,就得到一个数字,当然 ,同一个汉字应该得到相同的数字,这个怎么实现?

解决方案 »

  1.   

    import java.io.*;class HzToSz {
    public static void main(String[] args) throws IOException {
    int n;
    char c;
    c = 0;

    InputStreamReader r = new InputStreamReader(System.in); 
    while((n = r.read()) != 'q') {
    switch (n) {
    case '一':
    n = 1;
    break;
    case '二':
    n = 2;
    break;
    case '\n':
    case '\r':
    case '\t':
    case ' ':
    n = 0;
    break;
    default:
    System.out.println("NON");
    break;
    }
    if (n != 0)
    System.out.println(n);
    }

    }
    }
      

  2.   

    这样的话更简单呀,char 本身就是整型呀,JAVA 的 char 是双字节,汉字与其他任何字符一样,也是一个字符呀。
      

  3.   

    System.out.println((int)'中');---初学者
      

  4.   

    使用String.hashCode()获得一个数字。
      

  5.   

    可以考虑一下StringTokenizer类啊
    这个类处理这样的问题挺不错的
    可以试一下
      

  6.   

    我觉得可以用hashCode()来解决楼主的问题。
      

  7.   

    public class HashCodeTest {
    private static String s1 = "我";
    private static String s2 = "是";
    private static String s3 = "我";
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(s1 + ":" + s1.hashCode());
    System.out.println(s2 + ":" + s2.hashCode());
    System.out.println(s3 + ":" + s3.hashCode());
    }}
      

  8.   

    public class HashCodeTest {
    private static String s1 = "我就是我,所以我很开心"; private static String s2 = "你是谁"; private static String s3 = "我就是我,所以我很开心"; public static void hashCode(String s) {
    int codeNumber = 0;
    for (int i = 0; i < s.length(); i++) {
    String temp = s.substring(i, i + 1);
    if (temp.hashCode() != (",").hashCode())
    codeNumber += temp.hashCode();
    if (i == s.length() - 1)
    System.out.println(s + ":" + codeNumber);
    }
    } /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    hashCode(s1);
    hashCode(s2);
    hashCode(s3);
    }}