【问题标题】:Remove white spaces and new lines in ArrayList删除 ArrayList 中的空格和新行
【发布时间】:2019-08-12 06:31:42
【问题描述】:

我有一个 ArrayList 需要稍后进行比较。问题是如何让它漂亮?该列表正在获取表单菜单元素。

或者我可以只断言单词吗?我使用 Java,谢谢。

我使用 Java 和 Selenium WebDriver 进行了尝试:

String text = list.get(i).getText();
      text.replaceAll("^[.,\\s]+", "").split("[.,\\s]+");

我打印的 ArrayList 如下:

[Menu, General \n
      Export \n
            Layer Manager, Reporting \n
Theme \n
      Preferences \n
            Labels \n
            Reset Defaults \n
      Report]

预期结果:

[Menu, General, Export, Layer Manager, Reporting, Theme, Preferences, Labels, Reset Defaults, Report]

【问题讨论】:

  • 你想创建一个新的数组,每个值都被拆分(这样你就可以迭代每个值)还是只是将输出更改为你给的那个?

标签: java list selenium-webdriver arraylist split


【解决方案1】:

对于删除空格,我们可以使用 trim() 并删除我们需要替换的换行符,

list.stream().map(s -> s.replaceAll("\n",",").trim()).collect(Collectors.toList());

【讨论】:

    【解决方案2】:
    text.replaceAll("\\n", ",");
    

    这会将\n 替换为, 并按预期提供输出。

    【讨论】:

      【解决方案3】:

      基本上你有一个 List 有 2 个元素:

      [Menu, General \n Export \n Layer Manager, Reporting \n Theme \n Preferences \n Labels \n Reset Defaults \n Report]
      

      大概通过这行代码:

      String text = list.get(i).getText();
      

      您正在尝试获取第二个元素并将单词打印为 List。因此,首先您需要将字符串 General \n Export \n Layer Manager, Reporting \n Theme \n Preferences \n Labels \n Reset Defaults \n Report 转换为 Array 删除 \n 然后 split()ing 他们。您可以使用以下解决方案:

      • 代码:

        String text = list.get(i).getText();
        //String text = "General \n Export \n Layer Manager, Reporting \n Theme \n Preferences \n Labels \n Reset Defaults \n Report";
        String newText = text.replace(" \n "," ");
        String strArray[] = newText.split(" ");
        System.out.println("Output as Array List");
        for(int i=0; i < strArray.length; i++){
            System.out.println(strArray[i]);
        
      • 控制台输出:

        General
        Export
        Layer
        Manager,
        Reporting
        Theme
        Preferences
        Labels
        Reset
        Defaults
        Report
        

      现在,您可以使用以下解决方案轻松地将 Array 转换为 List 以获得所需的输出:

      • 代码:

        List<String>myList = new ArrayList<>();
        myList = Arrays.asList(strArray);
        System.out.println("Output as List");
        System.out.println(myList);
        
      • 控制台输出:

        Output as List
        [General, Export, Layer, Manager,, Reporting, Theme, Preferences, Labels, Reset, Defaults, Report]
        

      【讨论】:

        【解决方案4】:

        如果你用

        String enter = System.getProperty("line.separator");
        

        那么我相信你可以在进入时分裂。我猜这更容易。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-03
          • 1970-01-01
          • 2016-06-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多