Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误-悬挂元字符'*';接近索引0*1_Java_String - Fatal编程技术网

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是的,我就是这么做的。