当前位置: 首页 > 知识库问答 >
问题:

为什么在这行代码中不替换所有工作?[重复]

漆雕洋
2023-03-14
    String weatherLocation = weatherLoc[1].toString();
weatherLocation.replaceAll("how","");
weatherLocation.replaceAll("weather", "");
weatherLocation.replaceAll("like", "");
weatherLocation.replaceAll("in", "");
weatherLocation.replaceAll("at", "");
weatherLocation.replaceAll("around", "");
test.setText(weatherLocation);

weatherLocation仍然包含“like in”

共有3个答案

呼延骏俊
2023-03-14

正如Rohit Jain所说,而且,由于replaceAll采用正则表达式,您可以简单地执行以下操作,而不是链接调用

test.setText(weatherLocation.replaceAll("how|weather|like|in|at|around", ""));
步博厚
2023-03-14

正如Rohit Jain所说,字符串是不可变的;在您的情况下,您可以将调用链接到replaceAll,以避免多次做作。

String weatherLocation = weatherLoc[1].toString()
        .replaceAll("how","")
        .replaceAll("weather", "")
        .replaceAll("like", "")
        .replaceAll("in", "")
        .replaceAll("at", "")
        .replaceAll("around", "");
test.setText(weatherLocation);
袁霍英
2023-03-14

字符串是不可变的String#replaceAll()方法将创建一个新字符串。您需要将结果重新分配回变量:

weatherLocation = weatherLocation.replaceAll("how","");

现在,由于replace eAll方法返回修改后的字符串,您还可以在一行中链接多个replace eAll调用。实际上,这里不需要replace eAll()。当您要替换匹配正则表达式模式的子字符串时,这是必需的。简单地使用字符串#替换()方法:

weatherLocation = weatherLocation.replace("how","")
                                 .replace("weather", "")
                                 .replace("like", "");
 类似资料:
  • 我有以下Sikuli代码在JMeter这是不工作。 我尝试了Beanshell采样器和JSR223采样器,但在这两种情况下都不起作用。这是我得到的错误。 JSR223采样器 响应消息:javax。剧本脚本异常:javax。剧本ScriptException:FindFailed:C:\scripts\patterns\vnc\vncviewer。png:(32x31)在R[0,0 1920x108

  • 我知道这行代码将某些内容移动到eax寄存器中,但是dword ptr [edx 15Ch]有什么作用? 它是否接受edx中的值并添加15C=Q,然后将地址Q中的值加载到eax中?如果是这样,这个conetxt中的dword ptr是什么意思?

  • 我现在有点困惑。我试过: 得到: 然而,我想要: 我的代码怎么了?

  • 因此,下面的代码,从txt文件中取序列号作为参数,在我的计算机上正常工作。每个数字都写在一行上。下面是代码: 但它在CodeEval中不起作用。站点编译器是这么说的: Fontconfig错误:无法加载默认配置文件线程“main”java.awt.HeadLessException:未设置X11显示变量,但此程序执行了需要它的操作。在java.awt.GraphicsEnvironment.Che

  • 我尝试使用C类继承来解决违反Liskov替换原则的问题,但无法复制与Java程序演示的LSP冲突相同的问题。Java程序的源代码可以在这个页面上找到。违规会导致页面上描述的错误。下面是我用C语言翻译的代码: 答案是矩形类预期的50。我对Java的翻译是错误的还是这与Java和C实现类的区别有关?我的问题是: 是什么导致了这种行为差异(在引擎盖下/我的代码问题)? LSP违规的Java示例可以在C中

  • 问题内容: 我正在阅读DigitalOcean的golang客户程序。我注意到他们在变量中创建了* Op结构的实例。示例:https: //github.com/digitalocean/godo/blob/master/droplets.go#L32 为什么需要此行? 问题答案: 该行是*DropletsServiceOp满足DropletsService接口的编译时检查。 该行对程序的执行没有