+++ /dev/null
-/*
- * $Id: StringDivider.java,v 1.1 2004-10-05 20:51:57 jsurfer Exp $
- * Copyright Narushima Hironori. All rights reserved.
- */
-package net.sourceforge.phpeclipse.wizards.html;
-
-import java.util.Arrays;
-import java.util.regex.Pattern;
-
-public class StringDivider {
-
- static Pattern tagNameChoosePattern = Pattern.compile("<[\\s/]*(\\w+)\\s*.*>");
-
- String[] splitRegexpCandidates = {
- "\t",
- ",",
- "\\s",
- "\\s+",
- };
-
- public StringDivider() {
- }
-
- public String[][] divide(String content){
- return divide(content, getDivideSuitedRegexp(content));
- }
-
- public String[][] divide(String content, String regexp){
- String[] lines = content.split("\n");
- int len = lines.length;
- String[][] dist = new String[len][];
-
- int max = Integer.MIN_VALUE;
- for (int i = 0; i < len; i++) {
- String line = lines[i];
- String[] cells = line.split(regexp);
- dist[i] = cells;
- if(max < cells.length){
- max = cells.length;
- }
- }
- for (int i = 0; i < len; i++) {
- String[] newArray = new String[max];
- Arrays.fill(newArray, "");
- System.arraycopy(dist[i], 0, newArray, 0, dist[i].length);
- dist[i] = newArray;
- }
- return dist;
- }
-
- public String getDivideSuitedRegexp(String content){
- String[] lines = content.split("\n");
-
- String resultRegexp = null;
- int score = Integer.MAX_VALUE, cellCount = Integer.MIN_VALUE;
-
- for (int i = 0; i < splitRegexpCandidates.length; i++) {
- String regexp = splitRegexpCandidates[i];
- int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE;
- for (int j = 0; j < lines.length; j++) {
- String[] vals = lines[j].split(regexp);
- if(max < vals.length){
- max = vals.length;
- }
- if(min > vals.length){
- min = vals.length;
- }
- }
- int s = max - min;
- if( score > s || (score == s && max > cellCount)){
- cellCount = max;
- score = s;
- resultRegexp = regexp;
- }
- }
- return resultRegexp;
- }
-
-}