【问题标题】:How to split a string to get related data JAVA如何拆分字符串以获取相关数据JAVA
【发布时间】:2015-02-08 15:23:23
【问题描述】:

我有一个字符串,我从中获取数组中的数据,但我没有办法获取,因此我可以像我的字符串一样在数组中获取相关数据,

[{"Class Room": ["Windows",  "Windows1"],  "Staffroom": ["Windows",  "Windows1"]}],  "

这里有两个下拉菜单,

"Class Room" 在下拉窗口 Windows 和 Windows1 中有两个值

另一个下拉菜单,

"Staffroom" 在下拉窗口 Windows 和 Windows1 中有两个值

如何在数组中获取与下拉相关的值,我可以使用拆分操作但无法获取逻辑

上面给出的字符串在列表中,我的代码是,

String[] data = list.toString().split(",");

但它拆分成数组,然后我就没有相关数据了

我希望它以某种方式拆分,以便在数组中获得相对的 dropdown 数据,

  "Class Room": ["Windows",  "Windows1"], value in aray index 0
   "Staffroom": ["Windows",  "Windows1"]}] value in array index 1

字符串不修复它在运行时生成dropdowndropdown 的值不时变化,但字符串的模式与上面提到的相同

【问题讨论】:

  • 为什么String[] data = list.toString().split(","); 可以String[] data = list.toArray();
  • 波西米亚式的它会给我的数组和我需要的一样吗?
  • 你的字符串是 JSON 吗?
  • @Pratik 它是 JSON 格式,我将其转换为字符串

标签: java arrays string drop-down-menu split


【解决方案1】:

这取决于您正在使用的 UI 框架。如果您使用的是 Swings,那么您必须使用 ActionListener 来显示相关数据。例如

private String s1[] = { "None", "J2EE", "DataBase", "Scripting Language",
            "Computer Networks" };

    private String s2[][] = { { "None" }, { "Core Java", "Advanced Java" },
            { "Oracle", "SQL", "SyBase" }, { "Java scripts", "c#", "CGI" },
            { "MCSE", "CCNA", "CCNP", "CCIE" } };
...
skill = new JComboBox(s1);
specificSkill = new JComboBox(s2[0]);
...
skill.addActionListener(new ComboAction());
...
specificSkill.setSelectedIndex(0);

【讨论】:

    【解决方案2】:

    您可以使用此代码来解决您的问题,因为它经过测试和验证。

    String temp = "[{"Class Room": ["Windows",  "Windows1"],  "Staffroom": ["Windows",  "Windows1"]}],";
            String parts[] = temp.split(",");
            ArrayList<String> listItems = new ArrayList<String>();
    
            for (int i = 0; i < parts.length; i =i+2) {
                listItems.add(parts[i]+","+parts[i+1]);
    
            }
    

    或者您可以使用正则表达式在字符的特定出现处中断字符串。 希望对你有帮助。

    【讨论】:

    • Hitest 是否适用于此特定字符串或此格式的任何字符串,因为下拉列表的数量及其值每次都会更改
    • 它适用于任意数量的下拉菜单,因为它首先会将其拆分为所有逗号(,)并将每个值存储在数组中,其大小将是下拉菜单数量的两倍。假设您有 10 个下拉菜单,因此您将拥有大小为 20 的数组。之后,我们通过将所有输入组合成一对两个来添加所有输入,并且由于我们使用 Arraylist 存储结果,并且 arraylist 可以扩展到任何大小,因此您将面临即使您的输入大小每次都发生变化,也没有问题。就像在这种情况下,arraylist 将存储 10 个字符串对象,这将是您需要的 - @user3664724
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    相关资源
    最近更新 更多