【问题标题】:How to increment the number in a String by 1?如何将字符串中的数字加 1?
【发布时间】:2014-03-23 04:36:11
【问题描述】:

我有一个下面的字符串 -

String current_version = "v2";

这里的版本也可以是这些字符串中的任何一个 - v3v4v10v100v500v1000

现在我希望将 current_version 从v2 增加到v3。这意味着我总是需要将 current_version 增加 1。

如果 current_version 是v5,那么我会将它递增到v6

如何用字符串做到这一点?

注意:-

我从某个方法中获取了current_version 字符串值,该方法总是会像这个 v2、v3、v4 一样返回我..

【问题讨论】:

  • 你的意思是String current_version = "v2"(带引号)?

标签: java string increment


【解决方案1】:

为什么不将版本存储为 int 并在显示版本时添加 char 'v'? 如果你想用一个字符串来做,你可以创建一个初始字符串的子字符串,将其解析为 int,然后添加到'v'结果。

 currentVersion = "v" + (Integer.parseInt(currentVersion .substring(1)) + 1);

【讨论】:

  • 这是一种方式。我没有将这个 v2 存储在我的代码库中,这个字符串 v2 我是从某种方法获得的。所以我需要将它增加 1。
  • 不回答问题,应该是评论
  • 你总是知道你的字符串是什么格式的吗?它总是 vXXX 吗?
  • 是的,它永远是 vXXXXXX。
【解决方案2】:

如果您想将 v 之后的数字解析为 int 并将其递增 1,只需通过子串、将数字加 1 并将生成的递增数字连接回带有“v”前缀的字符串即可:

    String version = "v1";
    String newVersion = "v" + (Integer.parseInt(version.substring(1,version.length()))+1);
    System.out.println(newVersion);

或者,您可以在 int 中跟踪当前版本,增加该版本并通过将该 int 附加到“v”来构造新的 String,而无需调用 substring()

【讨论】:

    【解决方案3】:

    试试

    int version = Integer.parseInt(current_version.replace("v", ""));
    

    然后你可以增加它并添加一个get "v" + current_version

    【讨论】:

      【解决方案4】:

      我建议您将版本存储在 int 中。所以代码将跟随

      int versionNumber = 1;
      

      只要你想增加,只需使用

      versionNumber++;
      

      要打印或存储为完整版本,请执行以下操作

      String version = "v" + versionNumber;
      

      【讨论】:

        【解决方案5】:

        如果您的格式发生变化,这可以提供更多的灵活性:

        String version = "v1234";
        System.out.println("v" + (Integer.parseInt(version.replaceAll("[^0-9]", "")) + 1));
        

        使用正则表达式删除所有非数字,将结果加一。

        【讨论】:

          【解决方案6】:
              String oldVersion = "v100";
              String[] splitString = oldVersion.split("v");
              int newVersion = Integer.valueOf(splitString[1])+1;
              String completeNewVersion = splitString[0] + newVersion;
              System.out.print(completeNewVersion);
          

          【讨论】:

            【解决方案7】:

            如果你想要其他解决方案,你可以使用这个:

            uint8_t versionNumber = 1;
            char version[40];
            sprintf(version,"v %d",versionNumber);
            

            你可以随时增加你的变量“versionNumber”!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-01-12
              • 1970-01-01
              • 1970-01-01
              • 2022-07-22
              • 1970-01-01
              • 1970-01-01
              • 2015-03-09
              • 2021-12-30
              相关资源
              最近更新 更多