Java 错误-悬挂元字符'*';接近索引0*1
我有一根绳子Java 错误-悬挂元字符'*';接近索引0*1,java,string,Java,String,我有一根绳子 String result=“106*151*154*145*40*145*156*143*157*144*145*162*41” 我想替换段“*1”。但我失败了 result.replaceAll(“*1”、“A”) 如果使用此选项,则会出现错误:在索引0*1附近悬挂元字符“*” 我试图替换所有的“*1”段,但它给了我错误。将\\附加到“*1”delimeter前面 String result = "106*151*154*145*40*145*156*143*157*
String result=“106*151*154*145*40*145*156*143*157*144*145*162*41”代码>
我想替换段“*1”。但我失败了
result.replaceAll(“*1”、“A”)代码>
如果使用此选项,则会出现错误:在索引0*1附近悬挂元字符“*”
我试图替换所有的“*1”段,但它给了我错误。将\\
附加到“*1”
delimeter前面
String result = "106*151*154*145*40*145*156*143*157*144*145*162*41";
System.out.println(result.replaceAll("\\*1", "A"));
replaceAll()
方法的第一个参数是正则表达式。
在正则表达式中,*
是一个元字符,用于“零次或多次”,例如与*
或[0-9]*
一起使用。
它本身就是“缠结”。要引用*
字符本身,需要使用\
对其进行转义,您需要再次使用Java字符串对其进行转义
因此,使用replaceAll(“\\*”,“A”)
I将*
和1
连接起来,以匹配*1
,并将其替换为A
类堆栈溢出
{
公共静态void main(字符串[]args)
{
字符串结果=“106*151*154*145*40*145*156*143*157*144*145*162*41”;
字符串find=“*”+“1”;
结果=结果。替换(查找“A”);
系统输出打印项次(结果);
}
}
//输出:
//106A51A54A45*40A45A56A43A57A44A45A62*41
您在字符串结果=“106*151…”
中缺少一个结束双引号。投票以键入问题的形式结束。请尝试执行“\*1”
而不是“*1”
。由于Java将其称为元字符,因此可能会使用反斜杠将其转义为常规字符。(字符串.replaceAll()
大概需要一个正则表达式)谢谢,但我有一个问题,那就是我有一个字符串是“*1”&另一个字符串,在另一个字符串中如何添加“/”+“*1”?如果我尝试这样做,它会像其他人指出的那样工作,您可以使用replace()方法而不是replaceAll()。它还替换第一个参数的所有出现,并将第一个参数视为简单字符串,而不是正则表达式。您也不需要用它转义*
。@Ridcully是的,我就是这么做的。