繁体   English   中英

split 方法在 Java 数组中创建空元素

[英]Split method creates empty elements in Java Array

我有以下字符串“让我成为三明治”有人决定拖钓我并用随机数的 LOL 替换空格。 所以现在字符串是“LOLMakeLOLLOLLOLMELOLALOLSandWich”

我的目标是恢复这种变化。

我尝试使用 split 方法创建一个字符串数组,但这会导致数组内部的“空”元素具有一个值,但是当我尝试记录它时,它没有显示任何内容。 它也不等于“”

Public class MyClass{

public static void main(String[] args) {
        String trollText = "MakeLOLLOLLOLMELOLALOLSandWich";

        String[] array = trollText.split("LOL");

        if (array[1]=="")System.out.print("it's an empty string");
        if (array[1]==" ")System.out.print("it's a space sign");
        if (array[1]==null)System.out.print("it's equal to nothing");
        if (array[1]==' '+"")System.out.print("I don't know what's that");
        else System.out.print(array[1]+"<-- This is an element and it has a value");
    }
}

如果有人告诉我 array[1] 等于什么,我认为问题解决了。 在将元素复制到新数组时,知道该值会给我一些比较的东西。

比较 java 中的两个字符串时,不能使用==运算符来比较 object 引用。 您需要使用array[1].equals("")

此外,如果您只是想替换所有出现的字符串,您可以执行以下操作

trollText.replaceAll("LOL", " ")

要比较 java 中的字符串,请使用

String.equals("text");

如果字符串相同,这将返回true ,否则返回false

这是我的解决方案。 跳过empty" "字符串并将notEmpty values附加到new StringBuilder()并最终打印它。

import java.util.Arrays;

public class LOL_problem {

public static void main(String[] args) {
        String trollText = "MakeLOLLOLLOLMELOLALOLSandWich";
        StringBuilder sb = new StringBuilder();
        String[] array = trollText.split("LOL");
        //System.out.println(Arrays.toString(array));

        for (String str : array) {
            if (!str.equals("")) sb.append(str+" ");
        }
        System.out.println(sb.toString().trim());
    }
}

快乐的编码...

我们应该使用 equals(String str) 方法来检查字符串是否相等,而不是使用 object 引用检查的 '=='。 要替换所有出现,您可以使用 trollText.replaceAll 方法,如下所示。

public class MyClass{
  public static void main(String[] args) {
    String trollText = "MakeLOLLOLLOLMELOLALOLSandWich";
    String result  = trollText.replaceAll("LOL", " ");
    System.out.println(result);
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM