A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cheye0207 中级黑马   /  2014-7-14 17:41  /  1247 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s="123456";
怎么样把每一位都提取出来成为int类型?
望指教!!

14 个回复

倒序浏览
Integer.paserInt(String str);
回复 使用道具 举报
爨庚轩 发表于 2014-7-14 17:44
Integer.paserInt(String str);

我想要的是每一位,1,2,3,这样的
回复 使用道具 举报
先把字符串变成字符数组,然后再遍历强转就行了。
回复 使用道具 举报
☆枫の云 发表于 2014-7-14 18:02
先把字符串变成字符数组,然后再遍历强转就行了。

这个有试过,强转出来的是对应的ASCII码。。。。
回复 使用道具 举报
本帖最后由 cheye0207 于 2014-7-14 18:10 编辑
☆枫の云 发表于 2014-7-14 18:02
先把字符串变成字符数组,然后再遍历强转就行了。

这个有试过,强转出来的是对应的ASCII码
回复 使用道具 举报
☆枫の云 发表于 2014-7-14 18:02
先把字符串变成字符数组,然后再遍历强转就行了。

1强转出来是49
回复 使用道具 举报
  1. String s = "1234";
  2. int x;
  3. for(int i = 0; i < s.length(); i++) {
  4.         x = s.charAt(i) - '0';
  5.         // do something with x
  6. }
复制代码
回复 使用道具 举报
各个字符与字符'0'的差就是对应的int值了
  1. package test;

  2. import java.util.Arrays;

  3. public class Test9 {
  4.         public static void main(String[] args) {
  5.                 print(getInts("0123456asdfdf2243434"));
  6.         }

  7.         public static int[] getInts(String string) {
  8.                 char[] chars = string.toCharArray();
  9.                 int[] ints = new int[string.length()];
  10.                 int count = 0;
  11.                 for (int i = 0; i < chars.length; i++) {
  12.                         if (chars[i] >= '0' && chars[i] <= '9') {
  13.                                 ints[count++] = chars[i] - '0';// 各个字符与字符'0'的差就是对应的int值了。
  14.                         }
  15.                 }
  16.                 return Arrays.copyOf(ints, count);
  17.         }

  18.         public static void print(int[] ints) {
  19.                 for (int i : ints) {
  20.                         System.out.print(i + " ");
  21.                 }
  22.                 System.out.println();
  23.         }
  24. }
复制代码



回复 使用道具 举报
本帖最后由 爨庚轩 于 2014-7-14 19:46 编辑
cheye0207 发表于 2014-7-14 17:48
我想要的是每一位,1,2,3,这样的

o.o   for循环啊  唉   
for (int i=0; i<s.length(); i++){
        System.out.println(Integer.parseInt(s.charAt(i)+""));
}
回复 使用道具 举报
黎志勇 发表于 2014-7-14 18:31
各个字符与字符'0'的差就是对应的int值了

嗯,这个好!!谢谢
我用的是先强转成整数,再模以10,可惜顺序是反的,而且0在最前面就不行了
回复 使用道具 举报
cheye0207 发表于 2014-7-14 19:57
嗯,这个好!!谢谢
我用的是先强转成整数,再模以10,可惜顺序是反的,而且0在最前面就不行了 ...

嗯,我考虑到里面可能有其他非数字字符,所以就那样写了。
回复 使用道具 举报

嗯,谢谢!!这都想不起来了。。。
回复 使用道具 举报
char a[]=str.toCharArray();
把字符串转进字符数组,循环输出
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]+",");
}
回复 使用道具 举报
方法太多~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马