java中的拆分方法给出异常[重复]

Posted

技术标签:

【中文标题】java中的拆分方法给出异常[重复]【英文标题】:Split method in java giving exception [duplicate] 【发布时间】:2017-08-09 23:24:18 【问题描述】:
package practice;

import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Program 

    public static void main(String args[]) throws Exception

        System.out.println("Enter the string");
        String str=(new Scanner(System.in)).nextLine();
        System.out.println(str);
        String arr[]=str.split("+");

    

【问题讨论】:

【参考方案1】:

在 Java 中,String 的 split 方法需要一个正则表达式作为参数,+ 是正则表达式语法中的保留字符。

如果你想通过+字符split字符串,那么你必须escape它,例如:

String arr[] = str.split("\\+");

Here 的关于正则表达式和模式的 javadoc。

【讨论】:

谢谢。【参考方案2】:

你必须使用\\+,因为+是正则表达式中的一个特殊字符,所以你必须转义它:

String arr[] = str.split("\\+");

而不是:

String arr[] = str.split("+");

【讨论】:

str.split("-");实际上正在工作。这样“+”也应该可以工作。 mines 不是正则表达式中的特殊字符,因此您可以像使用 + 一样使用它,您可以在此处了解更多信息以了解我的意思users.cs.cf.ac.uk/Dave.Marshall/Internet/NEWS/regexp.html#info@AkshaySharma @AkshaySharma “这样,“+”也应该起作用“是什么让你这么认为?您是否阅读过split 方法的文档(或重复问题)?它提到split 正在使用正则表达式,+ 是正则表达式特殊字符之一(与* 一起),而- 不是(至少在这种情况下不是)。如果您想将其用作简单文字,则需要对其进行转义。 aaaaahh 好的,我不明白,谢谢@Pshemo ;)

以上是关于java中的拆分方法给出异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java中的数字格式异常[重复]

在异步任务中给出异常的进度对话框[重复]

Java - 正则表达式拆分输入文本但保留分隔符[重复]

如何在 | 上拆分字符串Java中的(管道)[重复]

如果插入语句给出重复键异常(在表中找到行 id=1)如何更新 JDBC(Postgresql)中的语句

在逗号上拆分字符串并忽略双引号中的逗号[重复]