黑马程序员技术交流社区

标题: 关于类型转换问题 [打印本页]

作者: duanyoujiji    时间: 2013-12-29 21:36
标题: 关于类型转换问题
我想把字符串类型的 Str 中的第i个元素转为int类型的,
我只想到两个办法,还都行不通:
int num= Integer.parseInt(Str.charAt(i)) ;但是Str.charAt()返回的是char类型,没有参数为char的parseInt方法;
int m = (int)(Str.charAt(i))这样我也试过了,返回的是ascii

希望知道的同学能帮助我一下,谢谢大家了!
作者: 由然自美    时间: 2013-12-29 22:22
本帖最后由 由然自美 于 2013-12-29 22:24 编辑

方法1
int i=10;
String s=""+i;
这是利用java的toString机制来做的转换,任何类型在和String相加的时候,都会先转换成String。

方法2
int i=10;
String s=String.valueOf(i);
这是利用String类提供的工厂方法来做的转换。
作者: doitforyou    时间: 2013-12-29 22:24
这个你可以通过switch语句,
1.将字符串转换为字符数组
2.通过switch语句将数组内容进行匹配,总共也就0-9 合计10个数
3.将匹配好的数存储到新的byte数组中并返回,那么就得到字符串的每个对应数字了

第二种方法就是先将字符串转换为int型,这个你知道怎么转,
然后通过迭代的方法逐次得到每个位置上的数字,
不过这种方法虽然代码简短了些,但效率没有switch高,
建议使用上面那个,而且可读性更好,迭代有点晕。。。

其他的我就暂时不知道了。。。

作者: duanyoujiji    时间: 2013-12-29 23:00
由然自美 发表于 2013-12-29 22:22
方法1
int i=10;
String s=""+i;

谢谢,很简便的方法很实用:)
作者: duanyoujiji    时间: 2013-12-29 23:03
doitforyou 发表于 2013-12-29 22:24
这个你可以通过switch语句,
1.将字符串转换为字符数组
2.通过switch语句将数组内容进行匹配,总共也就0-9  ...

谢谢你的回答,听你这么一说我不仅解决了这个问题,连那个题目的思路也清晰了。。
作者: 恨小殇    时间: 2013-12-29 23:06
先还是获取第i位,判断是否是0-9;

是的话就通过 String.valueOf(Str.charAt(i))返回字符串,接着就可以用Integer.parseInt()方法了;

如果不是0-9,是字符的话,只能类型提升转换成对应字符的ascii值.
作者: doitforyou    时间: 2013-12-29 23:10
duanyoujiji 发表于 2013-12-29 23:03
谢谢你的回答,听你这么一说我不仅解决了这个问题,连那个题目的思路也清晰了。。 ...

惭愧,其实这个我当初也很纠结,然后自己摸索着找了两条办法,其实不是很满意,等以后学习深入后估计有更好的办法,刚开始不要急,慢慢学习,学的多了思路就慢慢有了,加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2