Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 删除ArrayList中的空格和新行_Java_List_Selenium Webdriver_Arraylist_Split - Fatal编程技术网

Java 删除ArrayList中的空格和新行

Java 删除ArrayList中的空格和新行,java,list,selenium-webdriver,arraylist,split,Java,List,Selenium Webdriver,Arraylist,Split,我有一个ArrayList,以后需要比较。问题是如何让它变得漂亮?列表正在获取表单菜单元素 或者我只能断言文字?我用Java,谢谢 我尝试使用Java和Selenium WebDriver: String text=list.get(i).getText(); text.replaceAll(“^[,\\s]+”,”).split(“[,\\s]+”); 我打印的ArrayList如下: [Menu, General \n Export \n Layer M

我有一个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]

这将用
替换
\n
,并按预期输出。

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

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

如果你做的是

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

那么我相信你可以在进入时分开。我想这会更容易些。

基本上你有一个包含两个元素的列表,如下所示:

[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();
您正在尝试获取第二个元素并将单词作为列表打印。因此,首先需要将字符串
General\n Export\n Layer Manager,Reporting\n Theme\n Preferences\n Labels\n Reset Defaults\n Report
转换为一个数组,删除
\n
,然后
拆分()。您可以使用以下解决方案:

  • 代码:

    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]);
    
    List<String>myList = new ArrayList<>();
    myList = Arrays.asList(strArray);
    System.out.println("Output as List");
    System.out.println(myList);
    
现在,您可以使用以下解决方案轻松地将数组转换为列表,以获得所需的输出:

  • 代码:

    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]);
    
    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]