接口为 public float[][] strScan(String str)

解决方案 »

  1.   

    public float[][] strScan(String str){
    ArrayList list = null;
    ArrayList item = null;
    int digitstart = -1;
    for (int i = 0; i < str.length(); i++) {
    switch (str.charAt(i)) {
    case '{':
    if (list == null) {
    list = new ArrayList();
    } else if (item == null) {
    item = new ArrayList();
    digitstart = i + 1;
    } else {
    System.out.println("error!");
    return null;
    }
    break;
    case '}':
    if (item != null) {
    if (digitstart >= 0 && digitstart < i) {
    item.add(new Float(Float.parseFloat(str.substring(digitstart, i))));
    digitstart = -1;
    }
    float[] ii = new float[item.size()];
    for (int j = item.size() - 1; j >= 0; j--) {
    ii[j] = ((Float) item.get(j)).floatValue();
    }
    list.add(ii);
    item = null;
    }
    break;
    case ',':
    if (i == str.length() - 1 || digitstart >= i) {
    System.out.println("error!");
    return null;
    }
    if (digitstart >= 0) {
    item.add(new Float(Float.parseFloat(str.substring(digitstart, i))));
    digitstart = i + 1;
    }
    break;
    }
    }
    float[][] res = new float[list.size()][];
    for (int i = list.size() - 1; i >= 0; i--) {
    res[i] = (float[]) list.get(i);
    }
    return res;
    }
      

  2.   

    这么规则的东西转化是很简单的
     str="{{1,2,3},{2,3,4},{4,5,6},{7,8,9},{0,0,0}}";
    str=str.replaceAll("{","");
    str=str.replaceAll("}","");
    String[] arr=str.split(",");
    得到一维数组,二维的很容易啦
      

  3.   

    public static void main(String[] arg){
    String str="{{1,2,3},{2,3,4},{4,5,6},{7,8,9},{0,0,0}}";
    float[][] f=strScan(str);
    for(int i=0;i<f.length;i++){
    System.out.println();
    for(int j=0;j<f[i].length;j++)
    System.out.print(f[i][j]+"  ");
    }
    }public static float[][] strScan(String str){
    String s=str.substring(2,str.length()-2);
    String[] srow=s.split("\\},\\{");
    float[][] f=new float[srow.length][];
    for(int i=0;i<srow.length;i++){
    String[] scol=srow[i].split(",");
    f[i]=new float[scol.length];

    for(int j=0;j<scol.length;j++)
    f[i][j]=Float.parseFloat(scol[j]);
    }
    return f;
    }
      

  4.   

    public static float[][] strScan(String str) {
         str=str.substring(2,str.length()-2);
         ArrayList al=new ArrayList();
             while(str.indexOf("},{")>=0) {
             al.add(str.substring(0,str.indexOf("},{")));
             str=str.substring(str.indexOf("},{")+3);
         }
         al.add(str);
         float[][] result=new float[al.size()][3];
         for(int i=0;i<result.length;i++) {
             StringTokenizer strToken =new StringTokenizer((String)al.get(i),",");
             result[i][0]=new Float(strToken.nextToken()).floatValue();
             result[i][1]=new Float(strToken.nextToken()).floatValue();
             result[i][2]=new Float(strToken.nextToken()).floatValue();
         }
         return result;
        }调用如下:
    String str="{{1,2,3},{3,4,5},{34,56,78}}";
    float[][] f = strScan(str);
      

  5.   

    package com.hhj.examples;import java.util.List;
    import java.util.ArrayList;
    import java.util.StringTokenizer;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2004</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class ParseBunchFactory {
        public ParseBunchFactory() {
        }    public static void main(String[] args) {
            ParseBunchFactory.getIParseBunch().strScan(
                "{{1,2,3},{2,3,4},{4,5,6},{7,8,9},{0,0,0}}");
        }    public static IParseBunch getIParseBunch() {
            return new ParseBunchImp();
        }
    }// class to solute parsing bunch
    class ParseBunchImp implements IParseBunch {
        public ParseBunchImp() {    }    public String[][] strScan(String str) {
            if (str == null || str.trim().length() == 0)
                return null;
            List arrayList = new ArrayList();
            String source = str.trim();
            String temp = "";
            char[] chars = source.toCharArray();        /**
             * 将{{1,2,3},{2,3,4},{4,5,6},{7,8,9},{0,0,0}}
             * 存放到ArrayList中,格式为1,2,3||2,3,4||4,5,6
             */
            for (int i = 1; i < chars.length-1; i++) {
                if (chars[i] == '{') {
                    temp = "";
                    continue;
                }
                if (chars[i] != '}') {
                    temp += chars[i];
                }else{
                    arrayList.add(temp);
                }
            }
            if(arrayList.isEmpty())
                return null;        String[][] arrayStr = new String[arrayList.size()][];
            for(int i=0; i<arrayList.size(); i++){
                arrayStr[i] = this.divideStr(((String)arrayList.get(i)),",");
                System.out.println();
                for(int j=0; j<arrayStr[i].length; j++){
                    System.out.println(arrayStr[i][j]);
                }
            }
            return arrayStr;
        }
        /**
         * 用seperator把src分解成数组
         * @param src
         * @param seperator
         * @return
         */
        private String[] divideStr(String src, String seperator){
            if(src==null || src.trim().length() ==0)
                return null;
            StringTokenizer token = new StringTokenizer(src, seperator);
            String[] array = new String[token.countTokens()];
            int i=0;
            while(token.hasMoreElements()){
                array[i++] = token.nextToken();
            }
            return array;
        }
    }