我现在有一个字符串,类似下面
          ["CHN","柳林","343","234","452","235","34"]怎么能把这个字符串中双引号中的值取出来然后按照指定的次序放到表格里显示呢?最好是CHN这个字符串放到最后显示效果最好是<table>
<tr>
<td>柳林</td><td>343</td><td>234</td><td>235</td><td>CHN</td><td>452</td><td>34</td></tr>谢谢啦~~

解决方案 »

  1.   

    用数组保存的话,你知道index直接取就可以了。
      

  2.   

    建议用一个class去做。例如
    class User {
      private String country;
      private String name;
      private age;
      .... //get, set 方法
    }然后就
    for (User user : userList) {
     user.getUserName();
     user.getCountry();
    ......
    }
      

  3.   

    用index的话维护代码可是很郁闷的事情.....
      

  4.   

    把头尾的[]这两个字符去掉就是csv格式的数据所以用这个吧http://opencsv.sourceforge.net/
      

  5.   

    以前做毕设的时候写过一个类似的跟你的区别就是没有[],你试试吧,不知道有没有bugpackage cn.sh.wenxuan.util.csv;import java.io.BufferedReader;
    import java.io.Reader;
    import java.util.ArrayList;
    import java.util.List;public class CsvFomatParse {

        private BufferedReader br;
        private boolean hasNext = true;
        private char separator;
        private char quotechar;
        public static final char DEFAULT_SEPARATOR = ',';
        public static final char DEFAULT_QUOTE_CHARACTER = '"';
        
        public CsvFomatParse() {
         this(DEFAULT_SEPARATOR, DEFAULT_QUOTE_CHARACTER);
        }

        public CsvFomatParse(char separator, char quotechar) {
            this.separator = separator;
            this.quotechar = quotechar;
        }
        
    public String [] parseLine(String line) throws Exception {
    if(line == null) {
    return null;
    }

    StringBuilder sb = new StringBuilder(line);
    ArrayList  list = new ArrayList();
    StringBuilder buffer = new StringBuilder();
    char preview = ' ';
    sb.trimToSize();
    int currentStatus = 0;
    for(int i = 0; i < sb.capacity(); i++) {
    char c = sb.charAt(i);
    if(currentStatus == 0) {
    if( c == quotechar) {
    currentStatus = 1;
    continue;
    } else {
    throw new Exception("WRONG FOMAT AT COLUMN " + i);
    }
    }

    if(currentStatus == 1) {
    if(c != quotechar) {
    currentStatus = 2;
    buffer.append(c);
    } else {
    currentStatus = 3;
    preview = c;
    //buffer.append(c);
    }
    continue;
    }

    if(currentStatus == 2) {
    if(c != quotechar) {
    buffer.append(c);
    } else {
    currentStatus = 3;
    preview = c;
    }
    continue;
    }

    if(currentStatus == 3) {
    if(c == quotechar) {
    buffer.append(preview);
    buffer.append(c);
    currentStatus = 2;
    } else {
    if(c == separator) {
    list.add(buffer.toString());
    currentStatus = 4;
    buffer = new StringBuilder();
    } else {
    throw new Exception("WRONG FOMAT AT COLUMN " + i);
    }
    }
    continue;
    }

    if(currentStatus == 4) {
    if(c == quotechar) {
    currentStatus = 1;
    } else {
    throw new Exception("WRONG FOMAT AT COLUMN " + i);
    }
    continue;
    }
    }
    list.add(buffer.toString());
    return (String[]) list.toArray(new String[]{""});
    }

    public static void main(String args[]) {
    CsvFomatParse parse = new CsvFomatParse();
    String[] arr = null;
    try {
    arr = parse.parseLine("\"avmailc.exe\",\"3052\",\"Console\",\"0\",\"1,364 K\"");
    } catch (Exception e) {
    e.printStackTrace();
    }

    for(int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
    }

    }}
      

  6.   

    如果你只要实现那很简单,提取总没问题吧?
    如果考虑维护的话,可以写个bean,然后写个方法把取出来的数据一一放在bean里面,在页面遍历显示。
    顺序你想怎么显示就怎么显示就是了。