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中的拆分方法给出异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章