java实现尾号限行:输入一串车牌号码,以逗号分割开,车牌号码有以下要求,只要取后五位,如:AD123,12101。 现在对尾号进行限制:尾号为1,6则周一限行,尾号为2,7则周二限行,尾号为3,8则周三限行,尾号为4,9则周四限行,尾号为5,0的周五限行。周六周日不限行。尾号不为数字,则看第4位是否是数字,如果第4位还不是 数字,继续看第3 位,以此下去,直到找到有数字的时候止。由于用户不熟悉系统,有可能输入错误车 牌,如车牌不满5位或大于5位、车牌全是字母、没用逗号分割等,如有输入错误情况,一律返回error。如输入没有问题则返回限行的车牌号,如没有,刚返回空。
时间: 2024-03-07 07:49:45 浏览: 68
好的,这是一个比较典型的字符串处理问题,我可以给你提供一种Java实现的思路。
首先,我们需要获取用户输入的车牌号码,可以使用Java中的Scanner类来实现。然后,我们需要按照逗号来将输入的字符串分割成一个个的车牌号码,可以使用String类中的split方法来实现。
接着,我们需要对每一个车牌号码进行处理,获取其后五位,并判断其尾号属于哪一天的限行规定。可以使用字符串的substring方法获取后五位,然后根据尾号的值来进行判断。
在判断尾号的时候,我们可以使用switch语句来实现。如果尾号不是数字,则需要从后往前遍历字符串,找到第一个数字字符,然后再进行判断。
最后,我们需要将符合限行规定的车牌号码输出,可以使用StringBuilder类来拼接符合条件的车牌号码,然后将其返回。
下面是一份参考代码,你可以参考一下:
```java
import java.util.Scanner;
public class TailNumRestriction {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入车牌号码,多个车牌号码以逗号分割:");
String input = scanner.nextLine().trim();
String[] plates = input.split(",");
StringBuilder sb = new StringBuilder();
for (String plate : plates) {
// 去除空格
plate = plate.trim();
if (plate.length() != 5 || !plate.matches("[A-Za-z0-9]+")) {
System.out.println("error");
continue;
}
// 获取后五位
String tailNum = plate.substring(plate.length() - 5);
// 判断尾号限行
char lastChar = tailNum.charAt(tailNum.length() - 1);
int day = 0;
switch (lastChar) {
case '1':
case '6':
day = 1;
break;
case '2':
case '7':
day = 2;
break;
case '3':
case '8':
day = 3;
break;
case '4':
case '9':
day = 4;
break;
case '5':
case '0':
day = 5;
break;
default:
int index = tailNum.length() - 2;
while (index >= 0 && !Character.isDigit(tailNum.charAt(index))) {
index--;
}
if (index < 0) {
System.out.println("error");
continue;
}
lastChar = tailNum.charAt(index);
switch (lastChar) {
case '1':
case '6':
day = 1;
break;
case '2':
case '7':
day = 2;
break;
case '3':
case '8':
day = 3;
break;
case '4':
case '9':
day = 4;
break;
case '5':
case '0':
day = 5;
break;
default:
System.out.println("error");
continue;
}
}
// 判断是否限行
if (day > 0 && day < 6) {
sb.append(plate).append(",");
}
}
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
System.out.println(sb.toString());
} else {
System.out.println("");
}
}
}
```
希望能对你有所帮助!
阅读全文