I have a dynamic string value coming which i need to split and assign to other fields as shown in the below sample code.
public class TestDataType {
public static void main(String[] args) {
String firstName;
String lastName;
String useCaseId;
String partner;
String s = "Annie-Marie-83B782"; //dynamic string
// String s = "Annie-Marie-83B782-Alex";
// String s = "Annie--83B782-";
final String[] tokens = s.split("-");
firstName = tokens[0];
lastName = tokens[1];
useCaseId = tokens[2];
partner = tokens[3];
System.out.println("firstName " + firstName);
System.out.println("lastName " + lastName);
System.out.println("useCaseId " + useCaseId);
System.out.println("partner " + partner);
}
}
Run Code Online (Sandbox Code Playgroud)
The above code is throwing the below exception:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
Run Code Online (Sandbox Code Playgroud)
由于在使用split(String s = "Annie-Marie-83B782";)时字符串中没有tokens [3] ,因此抛出了上述异常,当我有tokens [3]分配值时,如何在程序中处理所有可能的情况,否则它是空白。类似地,我该如何处理何时String s = "Annie--83B782-。
这是使用switch语句的好时机。我建议您让Google阅读更多内容,因为它们在这种情况下会非常有用。这是您的代码:
String firstName = "";
String lastName = "";
String useCaseId = "";
String partner = "";
String s = "Annie-Marie-83B782";
final String[] tokens = s.split("-");
switch (tokens.length) {
case 4:
partner = tokens[3];
case 3:
useCaseId = tokens[2];
case 2:
lastName = tokens[1];
case 1:
firstName = tokens[0];
break;
default:
System.err.println("Invalid input");
return;
}
System.out.println("firstName " + firstName);
System.out.println("lastName " + lastName);
System.out.println("useCaseId " + useCaseId);
System.out.println("partner " + partner);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |