Java-如果在java中使用Map集合如何优化else

标签 java

下面是我的 else if 梯子。 请告诉我如何使用 Map 优化 else ifladder

for (String p1: data) {
    p1 = p1.replace("@", "");
    if (p1.startsWith("Year")) {
        Year = p1.substring(p1.lastIndexOf(":") + 1);
        System.out.print(Year);
    } else if (p1.startsWith("Department")) {
        Department = p1.substring(p1.lastIndexOf(":") + 1);
        System.out.print(Department);
    } else if (p1.startsWith("Division")) {
        Division = p1.substring(p1.lastIndexOf(":") + 1);
        System.out.print(Division);
    } else if (p1.startsWith("Subject Code")) {
        SubjectCode = p1.substring(p1.lastIndexOf(":") + 1);
        System.out.print(SubjectCode);
    } else if (p1.startsWith("Teacher Code")) {
        int k = p1.indexOf(" ", p1.indexOf(" ") + 1);
        String res = p1.substring(0, k);
        System.out.print("Characters ::" + res);
        String TeacherCode1 = p1.substring(p1.lastIndexOf(":") + 1);
        int m = TeacherCode1.indexOf(" ", TeacherCode1.indexOf(" ") + 1);
        System.out.println(m);
        TeacherCode = TeacherCode1.substring(0, m);
        System.out.println("Value of p2 ::" + TeacherCode.trim());
    } else if (p1.startsWith("Date")) {
        Date = p1.substring(p1.lastIndexOf(":") + 1);
        System.out.print(Date);
    }
}

上面的代码太长了。 我想使用 Map 对其进行优化以获得更好的性能

现在我附加了图像文件,我使用 OCR 将其转换为文本文件,我想分割数据,以保存到数据库中,例如年份:第三,部门:INFO。技术,日期:18/08/2017,主题代码:TBGOZ 类似,但在使用 map 优化代码中。

Click for Image

最佳答案

以下内容可能会有所帮助:

for (String p1: data) 
    {
        p1 = p1.replace("@", "");
        String[] vals = p1.split(":");
        int lastIndx = vals.length-1;
        switch(vals[0])
        {
        case "Year":
            Year = vals[lastIndx];
            System.out.print(Year);
            break;
        case "Department":
            Department = vals[lastIndx];
            System.out.print(Department);
            break;
        case "Division":
            Division = vals[lastIndx];
            System.out.print(Division);
            break;
        case "Subject Code":
            SubjectCode = vals[lastIndx];
            System.out.print(SubjectCode);
            break;
        case "Date":
            Date = vals[lastIndx];
            System.out.print(Date);
            break;
        case "Teacher Code":    
            int k = p1.indexOf(" ", p1.indexOf(" ") + 1);
            String res = p1.substring(0, k);
            System.out.print("Characters ::" + res);
            String TeacherCode1 = vals[lastIndx];;
            int m = TeacherCode1.indexOf(" ", TeacherCode1.indexOf(" ") + 1);
            System.out.println(m);
            TeacherCode = TeacherCode1.substring(0, m);
            System.out.println("Value of p2 ::" + TeacherCode.trim());
            break;
        }

    }

关于Java-如果在java中使用Map集合如何优化else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46336103/

相关文章:

java - 如何用jsp源构建base64图像src?

java - 如何更改 CTabItem 下划线的颜色?

java - 无法将 Java 11 配置为 Intellij

java - java中如何判断数组列表是否为空?

java - 使用带有 MySQL DB 的 Java 桌面应用程序完成后如何创建安装程序?

java - 如何使用android粘贴选项

java - 在 Java 中打印 Unicode

java - Java中的继承

Java 8 流与集合存储

java - 如何在 Java 中对接口(interface)对象使用 try-with-resources 语句