【问题标题】:Split method in java giving exception [duplicate]java中的拆分方法给出异常[重复]
【发布时间】: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("+");

    }
}

【问题讨论】:

    标签: java string 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 ;)
    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多