[英]How to split a string in Java?
我有一組單選按鈕和一組復選框。 我想打印出選定的單選按鈕/復選框。 要打印出我使用的單選按鈕
Object table = radio.getValue();
System.out.println(table);
我選擇了單選按鈕。 要獲取已選中的復選框,請使用相同的復選框:
Object columns = check.getValue();
System.out.println(columns);
我得到了已選中但周圍有方括號的復選框,例如,如果我選中了這些復選框
列A,列C,列F
打印的行將如下所示:
[A欄,C欄,F欄]
我想將所選復選框的字符串放入我的sql查詢中,所以我有類似這樣的數據data.executeQuery("Select " + columns + " From " + table);
它適用於table
但不適用於columns
。
對於此特殊應用程序,您無需拆分字符串。 您可以使用
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);
}
但是,要回答這個問題:
使用正則表達式語法通過split(String)
方法split(String)
。 當您具有項目列表時,將其轉換為String
並將其拆分不是有效的決定。
columns是一個包含選定復選框的所有值的數組。 確保默認的toString方法輸出以“,”分隔的項目
這是因為默認
check.getValue().toString()
被調用,並取決於是調用List / HashSet的List還是HashSet以及默認的toString()方法,默認情況下,該方法在打印值時追加[],因此對於您而言,您可以使用帶有覆蓋的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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.