如题,初学JAVA,很多方法不懂,查了很多资料思绪比较混乱,希望更位能帮帮忙.
首先是如何获得一个字符串中的每个字条的ASC码值,我想实现输入一个字符串,比如abc,生成一个新字符串,是a,b,c的asc值相连接成的,不是三个asc值相加,是相连接,试了很多次都不行,请各位帮帮忙,最好给出代码,至于判断字节倒还其次,我可以再研究一下,就是上面那个字符串的搞了好久了,谢谢各位了!

解决方案 »

  1.   

    汉字的打印出来的好象是负值。
    String str="xxx";
    StringBuilder sb=new StringBuilder();
    for(byte i: str.getBytes()){  
      sb.append(i);
    }
    这样不行嘛
      

  2.   

    这样是可以达到我上面叙述的效果,不过我不太明白,那个for语句原来可以这样用的吗,惭愧.刚才查阅了一下,str.getBytes()返回的是一个字节数组,sb.append(i),i也没有初始化,不明白.
    下面的工作也无法进行了,我获得的每个字符的ascll值还要进行一些数学运算,事实上最终要实现的是每个字符串的ascll值乘以199再相连的,请问各位还有没有其实方法,感激不尽!
      

  3.   

        char[] chs = "".toCharArray();这个char 如果不是汉字,可以直接用。否则你还得getBytes的方法!
      

  4.   

    1、获得一个字符串中每个字节的ASCII码值: String s = "abc一龥";    
    System.out.println("查看字符串中各字符的Unicode编码值(包括ACSII码值)\n十进制\t十六进制");
    for(int i = 0; i < s.length(); i++ )
    {
    int codePoint = s.codePointAt(i);
    System.out.println( codePoint + "\t" + Integer.toHexString(codePoint) );
    }按Unicode编码表来看,Unicode编码值在19968到40869之间(即十六进制中4e00到9fa5)的为汉字,不包括制表标点等。 String s = "aB中_";    
    for(int i = 0; i < s.length(); i++ )
    {
    int codePoint = s.codePointAt(i);
    if( codePoint >= 'a' && codePoint <= 'z' || codePoint >= 'A' && codePoint <= 'Z' ) //也可使用ACSII值:codePoint >= 97 && codePoint <= 122 || codePoint >= 65 && codePoint <= 90
    {
    System.out.println( s.charAt(i) + "\t是字母。" );
    }
    else if( codePoint >= 0x4e00 && codePoint <= 0x9fa5 ) //也可使用字符本身:codePoint >= '一' && codePoint <= '龥'
    {
    System.out.println( s.charAt(i) + "\t是汉字。");
    }
    else
    {
    System.out.println( s.charAt(i) + "\t是其它字符。" );
    }
    }
      

  5.   

    相连接是这个意思吗?System.out.println("\u0061\u0062\u0063\u9fa1");
      

  6.   


    如果这么写:
    String str="xxx"; 
    byte[] buf=str.getBytes();
    StringBuilder sb=new StringBuilder(); 
    for( byte i=0;i<buf.length;i++){
           sb.append(buf[i]); 
    //做你所谓的运算
    }
    和上面一个效果。