[英]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.