请教一个问题下,给定两个字符串 12Z057 0032和12Z057 0252,希望得到这中间所有的字符串,即:12Z057 0033、12Z057 0034、12Z057 0035、12Z057 0036、12Z057 0037、12Z057 0038。。。。。。。
求java算法,谢谢!
要求没说清楚,这2个字符串的前面“12Z057”一定是相等的吗?后面一定是空格+数字吗?
如果是就是下面代码(刚刚忘格式化了)
public static void main(String[] args) {
List<String> test = test("2Z057 0032", "12Z057 0252");
System.out.println(test);
}
public static List<String> test(String start, String end) {
try {
ArrayList<String> list = new ArrayList<>();
String[] ss = start.split(" ");
String head = ss[0];
int bodyLen = ss[1].length();
long statLong = Long.parseLong(ss[1]);
long endLong = Long.parseLong(end.split(" ")[1]);
for (long i = statLong + 1; i < endLong; i++) {
list.add(head + " " + formatLen(bodyLen, i));
}
return list;
} catch (Exception e) {
throw new IllegalArgumentException("参数格式有误,只支持'xxxx 数字'格式");
}
}
private static String formatLen(int bodyLen, long i) {
String stI = String.valueOf(i);
StringBuilder builder = new StringBuilder();
while (builder.length() + stI.length() < bodyLen) {
builder.append("0");
}
builder.append(stI);
return builder.toString();
}
https://blog.csdn.net/weixin_37630333/article/details/91374556
如果是固定格式,其实就是获取两个数值之间的所有数再拼接固定格式就好了。如上面这位的代码已经满足了。
@Test
public void t(){
// 因为字符串前面是固定,中间用空格隔开,最后的是数字格式,先分割字符串,再获取范围内的数字拼接字符串
String start = "12Z057 0032";
String end = "12Z057 0252";
String[] starts = start.split(" ");
String[] ends = end.split(" ");
List<String> allList = new ArrayList<>();
for (int i = (Integer.parseInt(starts[1]) + 1) ; i < Integer.parseInt(ends[1]) ; i++){
String ending = "";
// 由于已经知道范围,所以针对不同的情况进行处理
if (i < 100){
ending = " 00" + i;
}else {
ending = " 0" + i;
}
allList.add(starts[0] + ending);
}
System.out.println(allList);
}
得出结果:
[12Z057 0033, 12Z057 0034, 12Z057 0035, 12Z057 0036, 12Z057 0037, 12Z057 0038, 12Z057 0039, 12Z057 0040, 12Z057 0041, 12Z057 0042, 12Z057 0043, 12Z057 0044, 12Z057 0045, 12Z057 0046, 12Z057 0047, 12Z057 0048, 12Z057 0049, 12Z057 0050, 12Z057 0051, 12Z057 0052, 12Z057 0053, 12Z057 0054, 12Z057 0055, 12Z057 0056, 12Z057 0057, 12Z057 0058, 12Z057 0059, 12Z057 0060, 12Z057 0061, 12Z057 0062, 12Z057 0063, 12Z057 0064, 12Z057 0065, 12Z057 0066, 12Z057 0067, 12Z057 0068, 12Z057 0069, 12Z057 0070, 12Z057 0071, 12Z057 0072, 12Z057 0073, 12Z057 0074, 12Z057 0075, 12Z057 0076, 12Z057 0077, 12Z057 0078, 12Z057 0079, 12Z057 0080, 12Z057 0081, 12Z057 0082, 12Z057 0083, 12Z057 0084, 12Z057 0085, 12Z057 0086, 12Z057 0087, 12Z057 0088, 12Z057 0089, 12Z057 0090, 12Z057 0091, 12Z057 0092, 12Z057 0093, 12Z057 0094, 12Z057 0095, 12Z057 0096, 12Z057 0097, 12Z057 0098, 12Z057 0099, 12Z057 0100, 12Z057 0101, 12Z057 0102, 12Z057 0103, 12Z057 0104, 12Z057 0105, 12Z057 0106, 12Z057 0107, 12Z057 0108, 12Z057 0109, 12Z057 0110, 12Z057 0111, 12Z057 0112, 12Z057 0113, 12Z057 0114, 12Z057 0115, 12Z057 0116, 12Z057 0117, 12Z057 0118, 12Z057 0119, 12Z057 0120, 12Z057 0121, 12Z057 0122, 12Z057 0123, 12Z057 0124, 12Z057 0125, 12Z057 0126, 12Z057 0127, 12Z057 0128, 12Z057 0129, 12Z057 0130, 12Z057 0131, 12Z057 0132, 12Z057 0133, 12Z057 0134, 12Z057 0135, 12Z057 0136, 12Z057 0137, 12Z057 0138, 12Z057 0139, 12Z057 0140, 12Z057 0141, 12Z057 0142, 12Z057 0143, 12Z057 0144, 12Z057 0145, 12Z057 0146, 12Z057 0147, 12Z057 0148, 12Z057 0149, 12Z057 0150, 12Z057 0151, 12Z057 0152, 12Z057 0153, 12Z057 0154, 12Z057 0155, 12Z057 0156, 12Z057 0157, 12Z057 0158, 12Z057 0159, 12Z057 0160, 12Z057 0161, 12Z057 0162, 12Z057 0163, 12Z057 0164, 12Z057 0165, 12Z057 0166, 12Z057 0167, 12Z057 0168, 12Z057 0169, 12Z057 0170, 12Z057 0171, 12Z057 0172, 12Z057 0173, 12Z057 0174, 12Z057 0175, 12Z057 0176, 12Z057 0177, 12Z057 0178, 12Z057 0179, 12Z057 0180, 12Z057 0181, 12Z057 0182, 12Z057 0183, 12Z057 0184, 12Z057 0185, 12Z057 0186, 12Z057 0187, 12Z057 0188, 12Z057 0189, 12Z057 0190, 12Z057 0191, 12Z057 0192, 12Z057 0193, 12Z057 0194, 12Z057 0195, 12Z057 0196, 12Z057 0197, 12Z057 0198, 12Z057 0199, 12Z057 0200, 12Z057 0201, 12Z057 0202, 12Z057 0203, 12Z057 0204, 12Z057 0205, 12Z057 0206, 12Z057 0207, 12Z057 0208, 12Z057 0209, 12Z057 0210, 12Z057 0211, 12Z057 0212, 12Z057 0213, 12Z057 0214, 12Z057 0215, 12Z057 0216, 12Z057 0217, 12Z057 0218, 12Z057 0219, 12Z057 0220, 12Z057 0221, 12Z057 0222, 12Z057 0223, 12Z057 0224, 12Z057 0225, 12Z057 0226, 12Z057 0227, 12Z057 0228, 12Z057 0229, 12Z057 0230, 12Z057 0231, 12Z057 0232, 12Z057 0233, 12Z057 0234, 12Z057 0235, 12Z057 0236, 12Z057 0237, 12Z057 0238, 12Z057 0239, 12Z057 0240, 12Z057 0241, 12Z057 0242, 12Z057 0243, 12Z057 0244, 12Z057 0245, 12Z057 0246, 12Z057 0247, 12Z057 0248, 12Z057 0249, 12Z057 0250, 12Z057 0251]
Process finished with exit code 0