用java如何实现将一些数字分割成每三个一对然后存入数组中 如:stringstr=“123648

用java如何实现将一些数字分割成每三个一对然后存入数组中
如:stringstr=“123648945819399529....”
把以上这个字符串分割成三个一组(123
648 945 819 399 )存入数组中

String str = "123648945819399529s";
String[] arr = new String[str.length() / 3 == 0 ? str.length() / 3 : str.length() / 3 + 1];
int index = 0;
for(int i=0; i<arr.length;i++){
if(index+3 > str.length()){
arr[i] = str.substring(index);
}else{
arr[i] = str.substring(index,(index = index+3));
}
}
//打印数组
System.out.println(java.util.Arrays.toString(arr));
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-07
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class A {

    public static String[] getArray(String str) {
        List<String> allMatches = new ArrayList<String>();
        Matcher m = Pattern.compile("\\d\\d\\d").matcher(str);
        while (m.find()) {
            allMatches.add(m.group());
        }
        return allMatches.toArray(new String[allMatches.size()]);
    }

    public static void main(String[] args){
        System.out.println(getArray("123648945819399529").length);
    }
}

第2个回答  2014-05-07
使用subString(int beginIndex,int endIndex)方法获取子串,

比如stringstr.subString(0,2)就是得到前三个数字了
第3个回答  2014-05-07
String不是有个subString方法么,可以截取字符串追问

那如果是像我举的例子连在一起的怎么办

追答

像你这样顺序拆分的话,str.subString(i,i+3),i从0开始,每次加3。
连在一起反而好处理了

相似回答