我只是遇到了一个问题(可能很简单)。但我无法弄清楚如何解决这个问题,也许你的某个人可以帮助我。Java字符串到Int
我接收输入的这个格式的字符串:
D0001001.tiff
,我需要回到下一个(假设下一个是一个要素接收incremente
。 。输入:D0001001.tiff 输出:D0001002.tiff
没有零可错过我的方法是这样的(不带重构;))
private String getNextImageName(String last_image_name)
{
// Splits the name from the start to the . (not inclusive)
String next_name = last_image_name.substring(0, last_image_name.indexOf(".") - 1);
String next_extension = last_image_name.substring(last_image_name.indexOf(".") + 1, last_image_name.length() - 1);
String next_name_without_D = next_name.substring(1);
int next_name_withoud_D_value = Integer.parseInt(next_name_without_D);
// Increments to get the new name
next_name_withoud_D_value++;
String full_next_name = "D" + next_name_withoud_D_value + "." + next_extension;
return full_next_name;
}
但结果并不如预期:
输入:D0002001.tiff 输出:D201.tif
-
有一些约束,例如,数量0不能消失,因为最终的文件可以HACE不同的数字:
D0001001.tiff 或 D9999999001.tiff
但第二个进入只能通过999
D0001001.tiff 到 D0001999.tiff
到这一刻,我如此坚持,我也别想......
感谢
抛出错误对于错误的输入看起来相当激烈。为什么不是IllegalArgumentException? – erickson 2009-09-30 16:58:30
谢谢msaeed。它完美的作品。我甚至不懂代码。但是这个后期我会开始学习正则表达式。因为它看起来非常强大。 – Sheldon 2009-09-30 17:01:55
与penpen的#1答案相比,可怕的代码。为什么人们跳到正则表达式来寻找这样的解决方案? – 2009-09-30 17:27:01