如果我的字符串在java中包含^符号,如何拆分字符串我想用它创建一个数组

svmlkihl  于 2021-07-08  发布在  Java
关注(0)|答案(4)|浏览(314)

这个问题在这里已经有答案了

如何在java中拆分字符串(35个答案)
用点作为分隔符拆分字符串(13个答案)
上个月关门了。
我有一个字符串,它包含下面给出的^符号。
string tempname=“afds^afcu^e200f.pdf”
我想把它像下面那样分开
[afds、afcu、e200f]
如何解决这个问题。

rks48beu

rks48beu1#

String.split() 在java中采用正则表达式。自 ^ 是regex中的一个控制字符(当regex字符串的开头表示“行的开始”),我们需要用反斜杠转义它。因为反斜杠是java字符串文本中的控制字符,所以我们还需要用另一个反斜杠来转义它。

String tempName = "afds^afcu^e200f.pdf";
String[] parts = tempName.split("\\^");
6yt4nkrj

6yt4nkrj2#

你需要加上 \\split 方法 String 用这个把绳子分开( ^ ),因为 ^ 是正则表达式中的一个特殊字符,需要用 \\ :

String tempName = "afds^afcu^e200f.pdf";
String [] result = tempName.split("\\^");
System.out.println(Arrays.toString(result));

必须在正则表达式中转义的java字符是:.[]{}()<>*+-=^$|
两个结束括号(]和})只需要在打开相同类型的括号后转义。在[]-括号中,有些字符(如+和-)有时不转义。
更多信息。。。

zujrkrfu

zujrkrfu3#

可以使用检索不带文件扩展名的子字符串,并根据所需的分隔符(^)拆分该子字符串。具体如下:

public static void main(String[] args) {
        String tempName = "afds^afcu^e200f.pdf";
        String withoutFileFormat = tempName.substring(0, tempName.length() - 4); //retrieve the string without the file format
        String[] splitArray = withoutFileFormat.split("\\^"); //split it using the "^", use escape characters

        System.out.println(Arrays.toString(splitArray)); //output the result

    }

所需输出:

[afds, afcu, e200f]
piv4azn7

piv4azn74#

要删除的参数 split() 是一个正则表达式,具有特殊的元字符。如果要拆分的分隔符包含这些特殊字符(例如。 ^ ),您有两个选项:
使用转义字符 \ ,它必须在java字符串文本中加倍以 \\ :

String[] result = tempName.split("\\^");

如果您不想为此烦恼,或者如果分隔符是在运行时动态分配的,因此您自己无法转义特殊字符,请调用 Pattern.quote() 为您做:

String[] result = tempName.split(Pattern.quote("^"));

相关问题