Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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.split(";&124quot;)不工作_Java_String_Split - Fatal编程技术网

Java.split(";&124quot;)不工作

Java.split(";&124quot;)不工作,java,string,split,Java,String,Split,我遇到了一个问题,for字符串不能使用字符“|”作为参数。它以某种方式分隔字符串中的每个字符 代码: 输出: split﹕ [, 1, 2, 3, 4, 5, |, 6] 但是,我已经找到了一个快速解决方法:使用ASCII代码作为参数-> String[] res = "12345|6".split("\\x7C"); Log.d("split", Arrays.toString(res)); 输出: split﹕ [12345, 6] 只是想在此处共享此信息,以便具有相同问题的其他人也可

我遇到了一个问题,for字符串不能使用字符“|”作为参数。它以某种方式分隔字符串中的每个字符

代码:

输出:

split﹕ [, 1, 2, 3, 4, 5, |, 6]

但是,我已经找到了一个快速解决方法:使用ASCII代码作为参数->

String[] res = "12345|6".split("\\x7C");
Log.d("split", Arrays.toString(res));
输出:

split﹕ [12345, 6]

只是想在此处共享此信息,以便具有相同问题的其他人也可以使用此修复程序。:)

|
是正则表达式的关键字符,
split()
可用于正则表达式。像这样转义:
\\\\124;

您可以尝试像这样转义:

String[] res = "12345|6".split("\\|");

管道在正则表达式中具有特殊意义,它允许对正则表达式组件进行逻辑或运算。因此,您只需使用
\\

将转义字符放在前面,如下所示:

String[] res = "12345|6".split("\\|");
如果需要,则需要类似的“转义字符逻辑” 使用以下任何特殊字符进行处理/拆分(由 正则表达式):

  • 或符号(|)
  • 问号(?)
  • 星号(*)
  • 加号(+)
  • 反斜杠(\)
  • 句号(.)
  • 插入符号(^)
  • 方括号([和])
  • 美元符号($)
  • 符号(&)
如果使用“| |”进行拆分,则使用:

      yourstring.split(Pattern.quote("||"))

你可以试试这个,简单易行

字符串[]res=“12345 | 6”。拆分([|]”

publicstaticvoidmain(字符串[]args){
字符串数据=“12345 | 6 | 7 | 990”;
字符串[]arr=data.split(“\\\\”);
对于(int i=0;i
伙计,你所需要做的就是使用
\\\\\\\\
逃离
\\\\\\\\\\\\\
其他有相同问题的人应该遵循其他答案中的一个,而不是这一个。aa好吧,看起来有点混乱。:)这是我的第一个Java/Android应用程序——我是一个新手,我想如果其他新手面临同样的问题,我可以帮助他们。我正在将我的iOS应用程序移植到Android上,我在这里使用Objective-C方法
ComponentSeparatedByString:
,它将实际字符串(而不是正则表达式)作为参数-这就是我感到困惑的原因。。谢谢大家的澄清——我在冰箱里为大家预订了一杯德国啤酒!:)
split(“\\\\”)
。请注意,
.split()
采用正则表达式,
在正则表达式中具有特殊意义。
      yourstring.split(Pattern.quote("||"))
public static void main(String[] args) {
    String data = "12345|6|7|990";
    String[] arr = data.split("\\|");
    for(int i = 0 ; i< arr.length; i++){
      System.out.println(arr[i]);
    }
  }

O/p : 12345
6
7
990