我正在解析一个文本文件,其中每行的第一个符号表示不同的意思。
现在我正在做这样的事情:
while((line = inputStream.readLine()) != null) {
if(line.startsWith("O")) { .... }
else if(line.startsWith("B")) { .... }
else if(line.startsWith("30")) { .... }
else if(line.startsWith("99")) { .... }
else if(line.startsWith("00")) { .... }
我宁愿用 switch 语句来完成这个,但我不确定我将如何去做,因为我只能检查 B,它是一个字符长,30 是两个,否则我可以做line.subString(0,1)。
我有过这样的想法,但那是行不通的(显然)。
switch(line.startsWith(X)){
case "B": //where B is replacing X
break;
}
最佳答案
实际上正如您所注意到的,您的逻辑更适合处理一系列条件语句 ( if
),而不是 switch
。声明。
让它与 switch
一起工作语句是可能的,但它只会使逻辑更复杂,因为您必须首先使用 line.subString(0,1)
提取实际字符串。或 line.subString(0,2)
根据行首的内容。
此外,就代码质量而言,这两种方法非常接近。
所以只要保持你的实际逻辑即可。
关于java - 使用 switch 语句检查变化的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50090876/