黑马程序员技术交流社区
标题:
关于数字型字符串与整数的转换问题
[打印本页]
作者:
李成航
时间:
2012-3-1 13:54
标题:
关于数字型字符串与整数的转换问题
遇到这种需求:如我需要将一个字符型1,变为int型1,如:
char c=1;
int i=(int)c;//如果直接强制转换将会是49,而实际上我想得到1
像这种应用:
String s=new String("1234");//我想把字符串中的每个元素加1,变成"2345"
即:
String news=new String("2345");//不知如何实现?
作者:
丁晓宇
时间:
2012-3-1 14:18
楼主你char c = 1;这个1对应键盘上的ascii码是49,楼主baidu一下 ascii码自然就明白了 ,
正确的做法 char c = '1';
String s = new String("1234");
String news = "";
for (int i = 0; i < s.length(); i++) {
int temp = Integer.parseInt(s.substring(i,i+1));
news += ++temp;
}
System.out.println(news);
复制代码
作者:
丁晓宇
时间:
2012-3-1 14:20
数据量大的话 建议用StringBuilder , 只是做个Demo的话无所谓了
作者:
欧阳博
时间:
2012-3-1 14:52
本帖最后由 欧阳博 于 2012-3-1 14:53 编辑
首先 你的“char c=1;” 这个int 1会自动转换成它对应的字符,再赋给c,所以这个c的值是ASCII为1所对应的字符
“int i=(int)c” 你再把字符c强制类型转换为int型,所以i的值是字符c所对应的ASCII值, 这个49是哪来的???
2,
String s1 = new String("1234");
String s2 = "";
ArrayList List = new ArrayList(); //创建一个动态数组来接受上面字符串s1的每个字符,
for(int i=0;i<s1.length();i++)
{
char a = s1.charAt(i);
int ia = Integer.parseInt(a+"")+1;
List.add(ia); //把每个字符添加到List集合
}
Object[] values = List.toArray();
for(Object value:values)
{
s2 +=value; //再把这个数组里的每个元素累加到字符串s2
}
System.out.println(s2);//打印
复制代码
作者:
李成航
时间:
2012-3-1 14:56
49是将char型1转换为int型得的。
搞定了,谢谢大家
作者:
欧阳博
时间:
2012-3-1 14:59
欧阳博 发表于 2012-3-1 14:52
首先 你的“char c=1;” 这个int 1会自动转换成它对应的字符,再赋给c,所以这个c的值是ASCII为1所对应的 ...
汗。网速不行,没看到楼上的,我做的想复杂了,还是2楼好。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2