java中ASCII表的字母和数字相互转化的问题

如题目,现在我给出一个字符串,比如:“gjalg”,经过以下过程:1、将这里面的每一个字母先转化成ascii对应的数字;2、每个转化后的数字进行某些数学运算,比如+3;3、运算以后再转化成相应的字母;4、将新的字符串输出。ascii的字母和数字相互转化不是很懂,所以要有代码,谢谢

第1个回答  推荐于2016-06-14
public class welcome {

public static void main(String[] args) {
String str="gjalg";
char[] cha=str.toCharArray();
for(char s:cha){
System.out.println("ascii的值"+s);
System.out.println("+3后的字母"+(char)(s+3));
}
}
}
你可以看一下ascii码表中对应的值追问

for(char s:cha)这个for循环可以解释一下吗?没见过这种形式的,不是很懂,谢谢

追答

这是jdk1.5中的新特性之一,增强型for循环,就是遍历字符数组cha,从cha[0]开始一一赋值给新定义的变量s,直到数组遍历要并跳出循环。还不理解的话你可以查资料。

本回答被提问者采纳
第2个回答  2013-10-19
public static void main(String[] args) {
String str="gjalg";
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
System.out.print("ascii的值"+( (byte)c )+", ");
System.out.println(c+"+3后的字母"+(char)(c+3));
}
}追问

这里是每个字符的输出,要怎样把它变成字符串类型输出呢

追答

public static void main(String[] args) {
String str="gjalg";
StringBuilder sb = new StringBuilder();
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
sb.append((byte)c );
sb.append(", ");

}
System.out.print(str +" 对应的ascii值 "+sb.toString());
}

第3个回答  2013-10-19
1,2 都没什么问题,3做的话要小心,ascii有很多不可见字符和控制字符,如果字符加了以后超出就惨了。不要随便这样做。追问

要这样做其实应该是没有问题的,只要加一个判断就行了,没超出就执行这个操作,如果超出了就执行另外的操作

java中ASCII表的字母和数字相互转化的问题
public class welcome { public static void main(String[] args) { String str="gjalg";char[] cha=str.toCharArray();for(char s:cha){ System.out.println("ascii的值"+s);System.out.println("+3后的字母"+(char)(s+3));} } } 你可以看一下ascii码表中对应的值 ...

急!急!JAVA中ASCII转码问题??
String s2 = new String(s1.getBytes("ISO-8859-1"),"gb2312");这样s2又重新变回中文了,所以当你打印s2时,就是“你好”。还有一个问题,为什么这里用iso-8859-1来重新编码,而不用其他的字符集呢?这里因为,其他字符集无法相互转码而发生编码丢失现象,你可以试试,把iso-8850-1换成utf-8...

java里如何输出字母和数字对应。
我提供一个思路,就是用ASCII码,字母在ASCII码中a-z对应的是97-122,A-Z对应是65-90,所以你可以用(char)97,这样输出的就是一个字符'a'了,以此类推,你可以用for循环,97-122,得到所有对应的字母了。

Java中大写字母变成小写字母为什么是加32:ch+=32???
这是ASCII码,大写字母和小写字符之间数值上差32,例如:a在ASCII码中为97,A在ASCII码中为65所以这个就是加32的原因。

ASCLL码值与字母之间的转化用java编辑的代码
很简单,比如大写F的ascll的值为70,那么可以这样 int a=70;system.out.println((char)a);就输出F了 其实就是强制类型转换。。。

java输入一个字符,如果是字母,则输出相应的ASCII值,如果是数字字符,则...
out.print("输入一个字符:");String str = input.next();boolean isNumber = str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");if (isNumber) { System.out.println("输入的数字是:" + str);} else {System.out.println("输入的ASCII码是:"...

java输入一个字符,如果是字母,则输出相应的ASCII值,如果是数字字符,则...
public static void main(String[] args) { Scanner scanner = new Scanner(System.in);char ch =scanner.next().charAt(0);if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') ){ System.out.println((int)ch);}else if (ch >= '0' && ch <= '9'){ ...

java中怎样将字母后移一位呀? 比如x后移的得到y
编码,每个字母都对应一个数字,比如 ‘A’ 的 ASCII 码是 65,而 ‘a‘ 的 ASCII 码是 97 。你可以在网上搜索“ASCII 码表”在 ASCII 编码中,'x' 的 ASCII 码正好比 'y' 小 1 ,所以:char c1 = 'x';char c2 = c1 + 1; \/\/ 'y'就可以了,在 Java 中 char 就是一个整数 ...

java中的'\\123'输出为什么是s?
ASCII字符表

ascii码是如何换算成ASCII码的?
大写字母和小写字母的ASSCII值差32,利用ASSCII值来转换。小写字母的ASCII码比大写字母的ASCII码大32。比如,大写字母A的ASSCII值是65,那么zhi小写a就是65+32=97。依次类推d其他字母。如果用C++来写:#include<iostream.h> void main(){ char c,c1; cin>>c;\/\/从键盘输入字母c1=c+32;\/\/转换...

相似回答