[英]Java switch statement not working, even 'default' isn't
我的switch
语句无法整体使用。
我从未在Java中使用过switch,而且我不知道自己做错了什么。 它还没有执行default
。 我查找了一些有关switch
语句的信息,我认为可能是因为以下这一行:
if (pair.length == 2) {
// Voorbeeld van het gebruik van de key/value pairs
switch (pair[0]) {
因为我查找的结果似乎每个人都在pair[0]
点上使用了变量。
提前致谢!
String scanString = result.getText(); // result.getText();
String[] parts = scanString.split("\\||");
// Loop alle delen tussen | langs
for (String part : parts) {
String[] pair = part.split("\\|"); // Bevat de key en value pair voor en na het streepje
if (pair.length == 2) {
// Voorbeeld van het gebruik van de key/value pairs
switch (pair[0]) {
case "po":
System.out.println("Productieorder: " + pair[1]);
edt2.setText(pair[1]);
break;
case "tnr":
System.out.println("Tekeningnummer: " + pair[1]);
break;
case "ref":
System.out.println("Referentie: " + pair[1]);
break;
case "hafa":
System.out.println("Half Fabrikaat: " + pair[1]);
break;
case "art":
System.out.println("Artikel: " + pair[1]);
break;
case "atl":
System.out.println("Aantal: " + pair[1]);
break;
case "loc":
System.out.println("Locatie: " + pair[1]);
edt4.setText(pair[1]);
break;
default:
System.out.println("NIET GELUKT");
}
}
}
我将简单地尝试一下: if (pair.length > 2)
而不是== 2
,我完全不知道为什么它是== 2
,因为我需要扫描可能存在超过3000个字符的qr字符串。
问题在这里。
String[] parts = scanString.split("\\||");
这与
String[] parts = scanString.split("");
它将拆分字符串的每个字母。
例如:
"Hello".split("\\||")
它的返回值是一个像
["H","e","l","l","o"]
如果要将字符串分割为两个| ,您应该写:
String[] parts = scanString.split("\\|\\|")
问题出在String []部分= scanString.split(“ \\ ||”); 和String []对= part.split(“ \\ |”); 其中按字符分割字符串。 条件if(pair.length == 2)正在检查大小2而返回false,因此控件不会进入切换块。 您可以安装一个断点并对其进行调试。
您应该使用split("\\\\|")
如果想通过拆分|
; split("\\\\|\\\\|")
如果要用||
分割 。
否则第二个|
没有正则表达式的转义\\
将是一个OR,因此该字符串也将在空字符串上分割,从而给出仅包含一个字母的字符串数组(尽管不是|
)。
如果使用拆分功能,则需要牢记以下几点。 此功能不起作用,因为它被输入为拆分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.