Как увеличить число в строке на 1?

у меня есть строка ниже, как -

String current_version = "v2";

а вот версия может быть любой из этих строк, а также - v3 или v4 или v10 или v100 или v500 или v1000

теперь я хочу увеличить current_version из v2 to v3. Смысл я всегда нужно прирастить current_version на 1.

если current_version составляет v5, тогда я увеличу его до v6.

как я могу сделать это с Струна?

Примечание:

я current_version строковое значение из некоторого метода, который всегда будет возвращать мне только v2, v3, v4..

7 ответов


если вы хотите разобрать число после v как int и увеличить его на 1, просто сделайте это, добавив 1 к числу и объединив полученное увеличенное число обратно в строку с" v", добавленным:

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

кроме того, вы можете отслеживать текущую версию в int, увеличьте это и создайте свой новый String добавляя это int к "v", без необходимости вызывать substring().


я предложу вам сохранить версию в int. таким образом, коды будут следовать

int versionNumber = 1;

всякий раз, когда вы хотите увеличить только увеличить его с помощью

versionNumber++;

и для печати или хранения в полной версии выполните следующие действия

String version = "v" + versionNumber;

попробовать

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

затем вы можете увеличить его и добавить get "v" + current_version


почему вы не сохраняете версию как int и не добавляете символ 'v' при отображении версии? Если вы хотите сделать это со строкой, вы можете сделать подстроку начальной, разобрать ее на int и после этого добавить к' V ' результат.

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

Если ваш формат когда-либо изменится, это позволит немного больше гибкости:

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

используйте регулярное выражение, чтобы удалить все не-цифры, добавьте один в результат.


    String oldVersion = "v100";
    String[] splitString = oldVersion.split("v");
    int newVersion = Integer.valueOf(splitString[1])+1;
    String completeNewVersion = splitString[0] + newVersion;
    System.out.print(completeNewVersion);

Если вы хотите другое решение, вы можете использовать это :

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

и вы увеличиваете переменную "versionNumber", когда захотите !