我有一个以下字符串为 -
String current_version = "v2";
此版本也可以是这些字符串中的任意一个 - v3
或v4
或v10
或v100
或v500
或v1000
现在我希望将current_version从v2
增加到v3
。含义我总是需要将current_version增加1。
如果current_version为v5
,那么我会将其增加到v6
。
如何使用String?
注意: -
我从某个方法获得current_version
字符串值,这个方法总会像v2,v3,v4一样返回我...
答案 0 :(得分:8)
如果要将v之后的数字解析为int并将其递增1,只需通过子串,将数字加1并将得到的递增数字连接回一个前缀为“v”的字符串:< / p>
String version = "v1";
String newVersion = "v" + (Integer.parseInt(version.substring(1,version.length()))+1);
System.out.println(newVersion);
或者,您可以跟踪int
中的当前版本,通过将该int添加到“v”来增加该值并构建新的String
,而无需调用substring()
}。
答案 1 :(得分:8)
我建议你将版本存储在int中。所以代码将遵循
int versionNumber = 1;
每当你想增加时,只需使用
递增它versionNumber++;
并打印或存储为完整版本,请执行以下操作
String version = "v" + versionNumber;
答案 2 :(得分:2)
试
int version = Integer.parseInt(current_version.replace("v", ""));
然后你可以增加它并添加一个get "v" + current_version
答案 3 :(得分:1)
如果您的格式发生变化,则可以提供更大的灵活性:
String version = "v1234";
System.out.println("v" + (Integer.parseInt(version.replaceAll("[^0-9]", "")) + 1));
使用正则表达式删除所有非数字,在结果中添加一个。
答案 4 :(得分: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);
答案 5 :(得分:0)
为什么不将版本存储为int并在显示版本时添加char'v'? 如果你想用String做,你可以创建一个初始的子串,解析为int,之后添加'v'结果。
currentVersion = "v" + (Integer.parseInt(currentVersion .substring(1)) + 1);
答案 6 :(得分:-1)
如果您想要其他解决方案,可以使用此方法:
uint8_t versionNumber = 1;
char version[40];
sprintf(version,"v %d",versionNumber);
然后你增加你的变量&#34; versionNumber&#34;随时随地!