Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中拆分字符串?_Java_String - Fatal编程技术网

如何在Java中拆分字符串?

如何在Java中拆分字符串?,java,string,Java,String,我有一组单选按钮和一组复选框。我想打印出所选的单选按钮/复选框。要打印所选的单选按钮,我使用 Object table = radio.getValue(); System.out.println(table); 我选择了单选按钮。要获取已选中的复选框,我使用相同的选项: Object columns = check.getValue(); System.out.println(columns); 我得到的复选框已被选中,但周围有方括号,例如 如果我选中复选框 专栏A,专栏C,专栏F 打印的

我有一组单选按钮和一组复选框。我想打印出所选的单选按钮/复选框。要打印所选的单选按钮,我使用

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(“从“+表中选择“+列+”)


它适用于
,但不适用于

列是一个包含所选复选框的所有值的数组。确保默认的toString方法输出由“,”列分隔的项目是一个包含所选复选框的所有值的数组。确保默认的toString方法输出由“,”分隔的项。对于此特定应用程序,不需要拆分字符串。你可以用

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)
方法拆分字符串。由于您有一个项目列表,因此将其转换为
字符串并拆分它不是一个有效的决定。

对于此特定应用程序,您不需要拆分字符串。你可以用

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)
方法拆分字符串。因为您有一个项目列表,所以将其转换为
字符串并拆分它并不是一个有效的决定。

这是因为默认设置

  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(",");
    }
}


这是因为默认

  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(",");
    }
}


我开始编辑这个乱七八糟的东西,但意识到我不知道什么是比率按钮。DYM
JRadioButton
?您还想吐出
字符串
还是拆分它?对于以后的帖子,你可能需要更仔细地阅读,因为这个问题听起来像是胡说八道。我开始编辑这个乱七八糟的帖子,但意识到我不知道“比率”按钮是什么。DYM
JRadioButton
?您还想吐出
字符串
还是拆分它?对于以后的帖子,你可能需要更仔细地复习,因为这个问题读起来像胡说八道。