[英]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.