java怎么从字符串数中提取挨着的数字并存入数组?
例如:String[]str={"acd<(123...456,475...567)hji","com<(677...787,789...887)>"};把这个数组中的数...
例如:String[] str={"acd<(123...456 , 475...567)hji" , "com<(677...787 , 789...887)>"};
把这个数组中的数取出来存到整形数组或者集合中的结果:a={123, 456, 475, 567, 677 ,787, 789, 887} 展开
把这个数组中的数取出来存到整形数组或者集合中的结果:a={123, 456, 475, 567, 677 ,787, 789, 887} 展开
6个回答
展开全部
/*用最简单的基础计算随便写的 ,如果你要是字符串数组,那就循环数组 执行aaa方法……
你改一下返回值也可以,执行完返回一个数组……对象*/
int n2[]; //最终得到的数组,以下得到可变化长度的n2数组
public void aaa(String s){ //传入字符串测试 String s="cd234sn3245ji34fn&^345&%";
String num=""; 码团毁 //储存连续数字的字符串
int n1=0,n3=0,n4=0; //变量,用来进行简单计算
char[] c_1=s.toCharArray(); 或如 //将字符串转化为字符数组
for (int i = 0; i < c_1.length; i++) {
int o=Character.getNumericValue(c_1[i]); //字符转化为数字
if (o>=0&&o<=9){
num=num+c_1[i]; //储存连续数字
n4=1; //用来做下面的if判断
if(i!=(c_1.length-1)){ //判断,当达到最后一个时候,不再执行continue;
continue;
}
}
if(n4==1){ //-------------------当n4=1执行
n4=0; //-------------------执行一次 还原为0
n1=Integer.parseInt(num); /------/将连续数迟备字字符串转化为整型
num=""; //-----------------还原为空
int []n2 = new int[n3+1]; //--------创建局部的n2数组
if(n3!=0){ //--------------------/第一次执行因为this.n2没有初始化,所以不执行操作
for (int i1 = 0; i1 < this.n2.length; i1++) {
n2[i1]=this.n2[i1]; //-------------------当this.n2的length!=0时,首先替换局部n2值
}
}
n2[n3]=n1; //-----------将最后一个值 传入参数
this.n2=n2; //----------------- 重新覆盖n2数组
n3++;
}
}
}
//---------------------------------------------main{}测试
展开全部
循环字符戚差洞串,找到第一个为数字的地方,记下位置,继续判断下面一个是否是数字,是的话继续往下判断,直到下一个字符不是数字,然后截取两次索引之间的子庆祥串,放入数组,继续高枯循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-21
展开全部
用正则把数字形式的提取出来再循环放入数组中就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ArrayList<冲型Integer> list = new ArrayList<>();
for(String s: str){
察稿 Scanner scanner = new Scanner(s);
败判孝 while(scanner.hasNextInt()) list.add(scanner.nextInt());
scanner.close();
}
Integer[] ia = list.toArray(new Integer[0]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
跟提取字符串中的数字一样的道理啊 用正则表达式简单点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询