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有很多不可见字符和控制字符,如果字符加了以后超出就惨了。不要随便这样做。追问

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

相似回答