2011-10-11 107 views
0

我有一組單選按鈕和一組複選框。我想打印出所選的單選按鈕/複選框。打印出我選擇的單選按鈕如何在Java中分割字符串?

Object table = radio.getValue(); 
System.out.println(table); 

我得到選中的單選按鈕。要獲得這些複選框被選中我使用的是相同的:

Object columns = check.getValue(); 
System.out.println(columns); 

我得到的已經得到遏制,但用方括號複選框包圍它們,例如, 如果我檢查框

columnA,columnC ,columnF

印製線是這樣的:

[columnA,columnC,columnF]

我希望把所選的複選框的串到我的SQL查詢,所以我有這樣的事情data.executeQuery("Select " + columns + " From " + table);

它的工作原理與table,但它不工作與columns

+2

我開始編輯這個爛攤子,但意識到,我並不知道'ratio'按鈕是什麼。 DYM'JRadioButton'?你也想**吐**一個String或** split **嗎?對於未來的帖子,您可能需要更仔細地閱讀它們,因爲該問題看起來像是無稽之談。 –

回答

3

對於這個特殊的應用程序,您不需要拆分字符串。您可以使用

String str = columns.toString(); // "[colummA, colummC, colummF]" 
System.out.println(str.substring(1, str.length() - 1)); 

您還可以使用形成

StringBuilder sb = new StringBuilder(); 
for(Object obj : columns) { 
    if (sb.length() != 0) sb.append(","); 
    sb.append(obj); 
} 

然而,要回答這個問題一個逗號分隔的字符串:

字符串通過使用Regular Expression語法split(String)方法分裂。由於您有一個項目清單,將其轉換爲String並將其拆分不是一個有效的決定。

1

列是包含所選複選框的所有值的數組。確保默認的toString方法輸出用「,」分隔的項目

1

這是因爲默認

check.getValue().toString() 

稱爲並根據如果它的一個列表或一個HashSet和默認的toString()列表的方法/ HashSet的被調用的默認情況下追加[]印刷時的值,以便爲你的情況,你既可以使用一個集合與重寫的toString()方法按您的要求或只寫你自定義的toString方法,並調用它,而不是默認的ToString方法

這裏是一個簡單的實現,如果它是HashSet的

private String getHashSetString(Set<String> myset){ 
    StringBuilder sb = new StringBuilder(); 
    Iterator<String> i = myset.iterator(); 
    if (! i.hasNext()) 
     return ""; 
    for (;;) { 
     Long e = i.next(); 
     sb.append(e); 
     if (! i.hasNext()) 
     return sb.toString(); 
     sb.append(","); 
    } 
} 

所以不是

data.executeQuery("Select " + columns + " From " + table); 

data.executeQuery("Select " + columns.getHashSetString() + " From " + table);