如题,初学JAVA,很多方法不懂,查了很多资料思绪比较混乱,希望更位能帮帮忙.
首先是如何获得一个字符串中的每个字条的ASC码值,我想实现输入一个字符串,比如abc,生成一个新字符串,是a,b,c的asc值相连接成的,不是三个asc值相加,是相连接,试了很多次都不行,请各位帮帮忙,最好给出代码,至于判断字节倒还其次,我可以再研究一下,就是上面那个字符串的搞了好久了,谢谢各位了!
首先是如何获得一个字符串中的每个字条的ASC码值,我想实现输入一个字符串,比如abc,生成一个新字符串,是a,b,c的asc值相连接成的,不是三个asc值相加,是相连接,试了很多次都不行,请各位帮帮忙,最好给出代码,至于判断字节倒还其次,我可以再研究一下,就是上面那个字符串的搞了好久了,谢谢各位了!
String str="xxx";
StringBuilder sb=new StringBuilder();
for(byte i: str.getBytes()){
sb.append(i);
}
这样不行嘛
下面的工作也无法进行了,我获得的每个字符的ascll值还要进行一些数学运算,事实上最终要实现的是每个字符串的ascll值乘以199再相连的,请问各位还有没有其实方法,感激不尽!
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是其它字符。" );
}
}
如果这么写:
String str="xxx";
byte[] buf=str.getBytes();
StringBuilder sb=new StringBuilder();
for( byte i=0;i<buf.length;i++){
sb.append(buf[i]);
//做你所谓的运算
}
和上面一个效果。