📄 datadecoder.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package clusteranalysis;/** * * @author hako */import java.util.*;public class DataDecoder { boolean colStart=false; boolean rowStart=false; int rows=0,cols=0; double[][] data; public DataDecoder(String strdata){ strdata=strdata.replaceAll("\n", "").replaceAll(" ", ""); StringTokenizer tok=new StringTokenizer(strdata, "{},",true); String token; boolean neverLoopBack=false; StringBuffer tempData=new StringBuffer(); boolean operated=false; while (tok.hasMoreTokens()){ token=tok.nextToken(); operated=false; if (token.equals("{") && rowStart==false) { rows++; rowStart=true; operated=true; } if (token.equals("{") && rowStart==true){ //cols++; colStart=true; operated=true; } if (token.equals(",") && colStart==true && !neverLoopBack){ cols++; colStart=true; operated=true; } if (token.equals("}") && colStart==true){ colStart=false; neverLoopBack=true; operated=true; } if (token.equals("}") && colStart==false){ rowStart=false; operated=true; } if (!operated){ try{ Double.parseDouble(token); tempData.append(token); tempData.append("\n"); }catch (Exception e){ //System.out.println(e+": "+token); } } } cols++; data=new double[rows][cols]; String[] parser=tempData.toString().split("\n"); int c=0; for (int i=0;i<rows;i++){ for (int j=0;j<cols;j++){ data[i][j]=Double.parseDouble(parser[c]); //System.out.println("Making "+parser[c]+" to "+data[i][j]); c++; } } } public double[][] getData(){ return (this.data); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -