拆分Java字符串会返回空数组吗?

10 浏览
0 Comments

拆分Java字符串会返回空数组吗?

我有一个类似于这样的字符串:

"myValue"."Folder"."FolderCentury";

我想按照点(".")进行拆分。我尝试了以下代码:

String a = column.replace("\"", "");
String columnArray[] = a.split(".");

但是columnArray为空。我在这里做错了什么?

我想补充一件事,如果可能的话,字符串数组对象只会包含拆分后的值,如下所示,只有两个对象,而不是三个。

columnArray[0]= "myValue"."Folder";
columnArray[1]= "FolderCentury";

0
0 Comments

问题的原因是因为在Java中,使用String的split方法时,需要传入一个正则表达式作为参数。而在正则表达式中,点号(.)是一个特殊字符,代表任意字符。所以如果要分割包含点号的字符串,需要对点号进行转义。

解决方法一是使用双反斜杠对点号进行转义,代码如下:

String columnArray[] = a.split("\\.");

解决方法二是使用Pattern的quote方法,将字符串中的点号作为字面量处理,代码如下:

String columnArray[] = a.split(Pattern.quote("."));

在回答问题的过程中,还有一个相关的问题被提出。即如何拆分形如"myValue"."Folder"的字符串,其中点号在双引号之间。对于这个问题,没有给出明确的解决方法。

以上是对问题的原因和解决方法的整理。如果需要进一步了解,可以查看相关的问题链接:stackoverflow.com/questions/18508782/…

0
0 Comments

问题:

在Java中拆分字符串返回空数组的原因以及解决方法

在Java中,我们经常需要对字符串进行拆分操作。然而,有时候我们可能会遇到一个问题,即拆分字符串后返回一个空数组。在这篇文章中,我们将讨论这个问题的出现原因以及如何解决它。

问题的出现原因:

问题的出现原因是因为在Java中,正则表达式中的点(.)具有特殊含义,表示匹配除换行符以外的任意字符。因此,如果我们要拆分一个包含点的字符串,必须对点进行转义。如果不进行转义,Java会将点视为正则表达式的特殊字符,从而导致拆分结果为空数组。

解决方法:

要解决这个问题,我们需要在拆分字符串之前对点进行转义。在Java中,转义字符是反斜杠(\)。因此,我们可以使用双反斜杠(\\)来表示一个反斜杠字符。通过在点前面加上双反斜杠,我们可以告诉Java将点视为普通字符进行处理,而不是正则表达式中的特殊字符。

以下是解决该问题的代码示例:

String columnArray[] = a.split("\\.");

在上面的示例中,我们使用了双反斜杠来转义点,从而正确地拆分了字符串并获得了非空的数组。

在Java中,如果要拆分一个包含点的字符串,必须对点进行转义。否则,Java会将点视为正则表达式的特殊字符,从而导致拆分结果为空数组。通过在点前面加上双反斜杠,我们可以告诉Java将点视为普通字符进行处理,而不是正则表达式中的特殊字符。这样,我们就可以正确地拆分字符串并获得非空的数组。

0
0 Comments

问题:为什么使用split()方法分割Java字符串时返回空数组?

分析:split()方法接受一个正则表达式作为参数。所以,如果不希望将句点(.)作为正则表达式的元字符,需要将其转义。

解决方法:使用双反斜杠(\\)转义句点。

示例代码:

String[] columnArray = a.split("\\.");

0