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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 hyz123456 于 2013-10-6 17:48 编辑

    例如字符串"123456789",有没有方法快速的将其转换为int型的123456789???
如果是单个字符'1'的话还可以将其-48就变成了int型,但是一个字符串的话怎么弄比较快?
又或者如果字符串中带一两个符号呢?例如"123-456-789"如何快速提取出三个对应数字???


评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

10 个回复

倒序浏览
  1. String str="123456789";
  2.                 int i=Integer.parseInt(str);//调用Integer类的parseInt()方法,将字符串转换成int类型;
  3.                 System.out.println(i);
  4.                 String str1="123-456-789";
  5.                 System.out.println(str1);
  6.                 StringBuilder sb=new StringBuilder();//接收新的字符串
  7.                 for(int j=0;j<str1.length();j++){//遍历字符串,去掉字符'-'
  8.                         if(str1.charAt(j)!='-'){
  9.                                 sb.append(str1.charAt(j));
  10.                         }
  11.                 }
  12.                 System.out.println(sb.toString());//打印新的字符串
  13. 每个基本数据类型所对应的类都有相应的字符串转换成基本数据类型的方法,不过字符串 “true”,“false”不能转换成boolean类型;
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
一个字符串的话可以将其存储在一个数组arr中,用循环语句对其中的每个元素进行“-48”的操作之后存储在另一个数组arr2中,最后打印输出arr2就行了。
  1. class Practice
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char[] arr={'1','2','3','4','5','6','7','8','9'};
  6.                 int[] arr2=new int[arr.length];
  7.                 for (int x=0;x<arr.length;x++ )
  8.                 {
  9.                         arr2[x]=arr[x]-48;
  10.                 }
  11.                 for (int x=0;x<arr.length;x++)
  12.                 {
  13.                         System.out.print(arr2[x]);
  14.                 }
  15.         }
  16. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报

嗯,你的方法很好! 谢谢!
回复 使用道具 举报
String str ="123456789";   int x=Integer.valueOf(str);   这样就行
"123-456-789"这个要就直接用切割吧,。String[]  strs="123-456-789".split("-");

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
卜弦 发表于 2013-10-6 14:17
一个字符串的话可以将其存储在一个数组arr中,用循环语句对其中的每个元素进行“-48”的操作之后存储在另一 ...

嗯  我指的一个String类型的字符串,不过还是谢谢你了!
回复 使用道具 举报
卜弦 中级黑马 2013-10-6 14:54:52
7#
第二种情况 请看下面程序:

  1. //如果字符串中带一两个符号呢?例如"123-456-789"如何快速提取出三个对应数字???
  2. class Practice
  3. {
  4.         public static void main(String[] args)
  5.         {      
  6.                 char[] arr={'1','2','3','-','4','5','6','-','7','8','9'};
  7.                 int[] arr2=new int[arr.length];
  8.                 int y=0;
  9.                 for (int x=0;x<arr.length;x++ )
  10.        {
  11.        if (arr[x]>=48&&arr[x]<=57)//如果数组中的字符满足在48到57的范围,就把这个字符减去48,并存储到arr2中。
  12.                                                    //如果不满足条件则x自增1,y不变。保证缺省的字符不会被补0.
  13.                 arr2[y++]=arr[x]-48;               
  14.                                 }
  15.                 for (int x=0;x<arr.length;x++)
  16.                 {
  17.                         System.out.print(arr2[x]+" ");
  18.                 }
  19.         }
  20. }
复制代码
回复 使用道具 举报
卜弦 中级黑马 2013-10-6 14:57:00
8#
hyz123456 发表于 2013-10-6 14:49
嗯  我指的一个String类型的字符串,不过还是谢谢你了!

我是菜鸟。。。。。。能力有限
回复 使用道具 举报
卜弦 发表于 2013-10-6 14:57
我是菜鸟。。。。。。能力有限

嗯,咱都是... 加油吧!
回复 使用道具 举报
直接回答关键点:
  方式一:i=Integer.parseInt(s);
   直接使用的静态方法,不会产生多余的对象,但会抛出异常
  方式二:i=Integer.valueOf(s).intValue();
   Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
  自己看着办

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
问题解决后,请修改帖子分类为:提问结束
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马