java - 使用 switch 语句检查变化的变量

标签 java

我正在解析一个文本文件,其中每行的第一个符号表示不同的意思。

现在我正在做这样的事情:

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/

相关文章:

java - 音乐服务在按下后退按钮时停止

java - 在 EditText 中显示地址在真实设备上不起作用

java - 独立 VisualGC 下载链接

java - 删除然后创建记录导致Spring Data JPA重复 key 冲突

java - 找不到适合 jdbc :mysql://localhost/database 的驱动程序

java - 是否有任何开源 Java 反射实用程序或 jar?

java - FirebaseNetworkException 无法转换为 com.google.firebase.auth.FirebaseAuthException

java - Assets 中的图像看不到

java - Web 服务的 XML : inline attachment

java - Bukkit(spigot api)监听器没有响应?