【问题标题】:String#replaceFirst for charakter slash or / [duplicate]String#replaceFirst 用于字符斜杠或 / [重复]
【发布时间】:2021-07-06 01:22:39
【问题描述】:

亲爱的程序员们

我正在为我的 minecraft 服务器开发一个 Java 插件。现在我的问题是我在一个字符串中有一个 / 并且想用什么也没有 AKA "" 来替换它。我尝试在 replaceFirst 方法的第一个参数中使用“/”、“/”、“\/”和“斜线”。两者都不起作用。

这是我的代码:

if (command.startsWith("/")) {
            command.replaceFirst("\\/", "");
            System.out.println("After replace: " + command);
            target.performCommand(command);
            sender.sendMessage("§5" + target.getName() + "§a performed the command §5/" + command);
        }

如果您知道我该怎么做,请提前感谢您的帮助:)

【问题讨论】:

  • 您已经尝试过的应该可以工作。请附上实际代码。
  • @TimBiegeleisen 完成
  • 字符串是不可变的,所以你必须得到返回值:command = command.replaceFirst("/", "");
  • @Andreas 这很有道理。感谢您的回答。如果我没有找到你的副本,我很抱歉。在这种情况下,这完全不是我在搜索栏中输入的内容;)

标签: java minecraft


【解决方案1】:
  1. 字符串是不可变的command.replaceFirst 不会更改 command 引用指向的字符串;它创建一个新字符串,并返回对该新字符串的引用。你必须写例如command = command.replaceFirst(...).

  2. 鉴于replaceFirst 使用正则表达式,这不必要地复杂。改用command = command.substring(1);,去掉第一个字符。

【讨论】:

  • 或者直接使用String#replace
  • @TimBiegeleisen 这不是我的选择,因为可能有多个斜线,我只想替换第一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多