java字符串和数字转换问题

[复制链接]
查看11 | 回复1 | 2013-9-26 01:20:56 | 显示全部楼层 |阅读模式
||知道
| 分类: 输入一个字符串比如:String s=“12 13 14 15 16”;定义一维数组int a[4]=new int[4];请问如何将s中的数字保存到一个一维数组a中 下载知道APP,提问优先解答! 方式一:扫描二维码下载
方式二:短信免费下载
分享到:
2013-09-24 22:55 提问者采纳 Scannerscanner=newScanner( 1213141516 int[]array=newint[5];intindex=0;while(scanner.hasNextInt())array[index++]=scanner.nextInt();提问者评价感谢大家评论|
|来自团队 |采纳率50%擅长: 按默认排序| 其他4条回答 2013-09-24 23:15|五级Strings= 1213141516int[]a=newint[5]; intindex=0,indexstart=0; for(inti=0;i 5;i++){ index=s.indexOf(,indexstart+1); if(index 0) a=Integer.parseInt(s.substring(indexstart,index)); else{ a=Integer.parseInt(s.substring(indexstart,s.length())); break; } indexstart=index+1; } for(inti=0;i a.length;i++){ System.out.println(a); } 评论| 2013-09-24 23:40|五级 //这样的问题真的不值得问,自己仔细想想就有答案了//给你一个运行效率比较高一些的答案吧,该方案只能分析正整数,分析负数和浮点数你应该再自己想想publicstaticint[]parseIntArray(Stringtext){ if(text!=null text.length() 0){//判断字符串是否为null及长度 intlen=text.length();//获取字符串长度 int[]tmpResult=newint[len/2+1];//创建临时数组,用来存储分析得到的整数,数组的长度多少合适呢?你仔细想想 intsize=0;//分析得到的整数个数 inttempNum=0;//临时数字-用来存放分析的数字 booleanlastIsNum=false;//用来表示状态上次的字符是否数字 for(inti=0;i len;i++){//循环字符串中的字符 charc=text.charAt(i); if(c 0 c 9 ){//判断当前字符是否数字字符 tempNum=tempNum*10+(c-48);//如果是数字字符,则加到tempNum中,为什么要减48呢?字符 1 如何转换为数字1呢?没错就是减去48 lastIsNum=true;//设置状态,表示该次循环字符为数字 }else{ if(lastIsNum){//如果上次循环字符是数字 tmpResult[size++]=tempNum;//将分析的临时整数存放到临时数组中 tempNum=0;//重置临时整数 lastIsNum=false;//设置状态,表示该次循环字符不是数字 }} } if(lastIsNum){//如果字符串最后一位是数字,那么最后分析的数据就没有放在临时数组中,所以这里很必要 tmpResult[size++]=tempNum; } int[]result=newint[size];//创建结果集数组 System.arraycopy(tmpResult,0,result,0,size);//复制临时数组中的数据到结果集中 returnresult;//返回结果集 }else{ //当字符串为null或长度为0时 returnnewint[0]; }}publicstaticvoidmain(String[]args){ //测试 Stringtext= 1213141516int[]re=parseIntArray(text);//调用方法,得到分析的数字数组 for(inti=0;i re.length;i++){//遍历输出一下看看 System.out.println(re); } } 评论| 2013-09-24 22:44热心网友 String s=“12 13 14 15 16”;String arr[]=s.split( int a[]=new int[arr.length];for(int i=0;i arr.length; i++){ a=Integer.parseInt(arr);} 评论| 今天 08:42|三级 你自己先写代码,如果得不到正确结果再修改,编程是一个不断调试的过程 评论| 其他类似问题 2006-05-2639 2006-12-066 2011-10-098 2008-11-105 2009-02-15 等待您来回答 0回答 102回答0回答0回答1回答1回答 50回答1回答 邮箱登录 手机登录
帐号 密码 验证码 看不清? 记住我的登录状态
还没有百度账号? 123 精彩知识在知道
回复

使用道具 举报

千问 | 2013-9-26 01:20:56 | 显示全部楼层
| 2013Baidu|
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行