当前位置: 首页 > 面试题库 >

令牌化错误:java.util.regex.PatternSyntaxException,悬挂的元字符“ *”

伍嘉
2023-03-14
问题内容

我正在使用以下这种格式split()对一个字符串进行标记化*

name*lastName*ID*school*age
%
name*lastName*ID*school*age
%
name*lastName*ID*school*age

我正在使用以下代码从名为“ entrada.al”的文件中读取此信息:

static void leer() {

    try {
        String ruta="entrada.al";
        File myFile = new File (ruta);
        FileReader fileReader = new FileReader(myFile);

        BufferedReader reader = new BufferedReader(fileReader);

        String line = null;

        while ((line=reader.readLine())!=null){
            if (!(line.equals("%"))){
                String [] separado = line.split("*"); //SPLIT CALL
                names.add(separado[0]);
                lastNames.add(separado[1]);
                ids.add(separado[2]);
                ages.add(separado[3]);
            }
        }

        reader.close();
    }

我得到这个例外:

线程“主”中的异常java.util.regex.PatternSyntaxException:在索引0附近悬挂元字符’*’

我的猜测是,*原始文本文件缺少有效期限会导致这种情况。我该如何解决?


问题答案:

不,问题在于*正则表达式中的保留字符,因此您需要对其进行转义。

String [] separado = line.split("\\*");

*表示“零个或多个先前的表达式”(请参阅PatternJavadocs),并且您没有给它任何先前的表达式,从而使拆分表达式非法。这就是为什么错误是的原因PatternSyntaxException



 类似资料:
  • 但是,我收到以下错误: “my_error”:“SQL错误:derived_table zero_to_3创建失败:CREATE TABLE as select:com.ibm.DB2.jcc.am.sqlsyntaxerrorexception:DB2 SQL错误:sqlcode=-104,sqlstate=42601,sqlerrmc=as;rO_to_3\”(\n有两个;join,drive

  • 我正在从PowerShell生成SAS令牌,但当我试图从Azure Storage explorer访问该令牌时,它会产生问题“身份验证错误。签名字段格式不正确”。 下面是完整的Powershell命令:- $StorageAccountName=“xxxxxx” $ResourceGroup=“RemoteAccess” $CONTAINERNAME=“VHDS” $AZSTRCTX=new-A

  • 问题内容: 我需要验证一个Google id_token,其中一个步骤涉及检查令牌签名。 首先,我从以下网址获取证书:https : //www.googleapis.com/oauth2/v2/certs,并从证书中提取模数(n)和指数(e)并生成公钥,然后分解令牌(标题,有效负载和摘要),然后将解码后的内容与Google pKey +摘要一起发送到rsa函数。 我陷入了这个验证错误: 这是代码

  • 问题内容: 我尝试了以下简单的JavaScript代码: 例如,在Chrome控制台中,这将返回 SyntaxError:意外令牌: 我在JSONLint上尝试了JSON ,它是有效的。 您看到错误了吗? 问题答案: FWIW,改为使用。比。

  • 问题内容: 尝试解析此JSON字符串时出现错误 扩展的字符串对象: 问题答案: 验证您的json字符串。如果可以,请尝试以下操作:

  • 问题内容: 这是我的代码一直在给问题。 我不知道为什么要这么做。 编辑: 我已根据您的要求进行了编辑,以查看更多代码。 问题答案: 您要在课程外声明一个字段: 它必须放在一个类中: