Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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反斜杠拆分字符串_Java_Regex - Fatal编程技术网

Java反斜杠拆分字符串

Java反斜杠拆分字符串,java,regex,Java,Regex,我有一个类似“test\00216243”格式的字符串。 我需要根据反斜杠“\”在Java中拆分字符串 My Program: public class StringTest { public static void main(String[] args) { String taskOwner = "test\00216243"; String taskArray[] = taskOwner.split(Pattern.

我有一个类似“test\00216243”格式的字符串。 我需要根据反斜杠“\”在Java中拆分字符串

My Program:

    public class StringTest {

        public static void main(String[] args) {
            String taskOwner = "test\00216243";
            String taskArray[] = taskOwner.split(Pattern.quote(System.getProperty("file.separator")));
            System.out.println(taskArray[0]);
        }
    }
当我运行这个程序时,我得到以下结果,但不是“测试”结果。有什么帮助吗

Result:
test16243

\002
表示unicode字符。因此,我建议您根据字母或数字以外的字符分割输入

String string1 = "test\00216243";
String part[] = string1.split("[^a-z0-9]");
System.out.println(part[0]);
输出:

test

\002
表示unicode字符。因此,我建议您根据字母或数字以外的字符分割输入

String string1 = "test\00216243";
String part[] = string1.split("[^a-z0-9]");
System.out.println(part[0]);
输出:

test
字符串
“test\0021623”
应替换为
“test\\0021623”

因为
\
表示转义序列,所以需要在字符串中使用
\\
来表示
\

试试这个

public static void main(String[] args) {

    String taskOwner = "test\\00216243";
    String myarray[] = taskOwner.split("\\\\");
    System.out.println(myarray[0]+"   "+myarray[1]);

}
输出

test   00216243
test
00216243
参考资料:

字符串
“test\0021623”
应替换为
“test\\0021623”

因为
\
表示转义序列,所以需要在字符串中使用
\\
来表示
\

试试这个

public static void main(String[] args) {

    String taskOwner = "test\\00216243";
    String myarray[] = taskOwner.split("\\\\");
    System.out.println(myarray[0]+"   "+myarray[1]);

}
输出

test   00216243
test
00216243
参考资料:

只是为了补充

\
是正则表达式以及Java字符串文本中的特殊字符。如果您想在正则表达式中使用文字反斜杠,则必须将其加倍。

当您键入
“\\”
时,这实际上是一个反斜杠(由于转义Java字符串中的特殊字符)

正则表达式也使用反斜杠作为特殊字符,您需要使用另一个反斜杠对其进行转义。所以最后,您需要将“\\”作为模式传递,以匹配单个反斜杠

 public static void main(String[] args) {
        String taskOwner = "test\\00216243";
        String taskArray[] = taskOwner.split("\\\\");
        System.out.println(taskArray[0]);
    }
输出

test   00216243
test
00216243
再加上

\
是正则表达式以及Java字符串文本中的特殊字符。如果您想在正则表达式中使用文字反斜杠,则必须将其加倍。

当您键入
“\\”
时,这实际上是一个反斜杠(由于转义Java字符串中的特殊字符)

正则表达式也使用反斜杠作为特殊字符,您需要使用另一个反斜杠对其进行转义。所以最后,您需要将“\\”作为模式传递,以匹配单个反斜杠

 public static void main(String[] args) {
        String taskOwner = "test\\00216243";
        String taskArray[] = taskOwner.split("\\\\");
        System.out.println(taskArray[0]);
    }
输出

test   00216243
test
00216243

字符串部分[]=string1.split(“[^A-Za-z0-9]”)
string1.拆分(“[^a-z0-9]”)在此部分中,您正在查找不在[a-zA-Z0-9]集合中的字符。^暗示不是。如果只拆分字符串
“test\0216243”
,则此方法很好。将来,如果您还想打印此字符串,则需要使用以下方法。尝试打印它。或
字符串部分[]=string1.split(“[^a-Za-z0-9]”)
string1.拆分(“[^a-z0-9]”)在此部分中,您正在查找不在[a-zA-Z0-9]集合中的字符。^暗示不是。如果只拆分字符串
“test\0216243”
,则此方法很好。将来,如果您还想打印此字符串,则需要使用以下方法。请尝试打印它。不应该将
拆分(\\\\”
设置为
拆分(\\\”
?op告诉您
“test\00216243”
是一个精确的输入。为什么要更改输入
\002
表示一个ascii字符。@StephenB No.它不应该被拆分(“\\”
,因为
测试\\00216243
有两个反斜杠,所以每个字符有两个反斜杠。因此,
split(“\\\”)
@AvinashRaj当您的输入中有转义序列时,您必须在处理它之前处理它。因此,在这里更改输入是必要的。不应该将
split(\\\\”
设置为
split(\\\”
?op告诉您
“test\00216243”
是一个精确的输入。为什么要更改输入
\002
表示一个ascii字符。@StephenB No.它不应该被拆分(“\\”
,因为
测试\\00216243
有两个反斜杠,所以每个字符有两个反斜杠。因此,
split(“\\\”)
@AvinashRaj当您的输入中有转义序列时,您必须在处理它之前处理它。因此,在这里更改输入是必要的。