Java 将 else { if {} } 转换为 elseif {}

标签 java if-statement converter

我正在寻找 java 或类似语言中的任何现有代码或库以进行转换,给定以下内容(这不是 java,而是一种自定义语言)

if (i < 0) {
    i = 0;
} else {
    if (i > 100) {
        i = 100;
    }
}

像这样进入elseif:

if (i < 0) {
    i = 0;
} else if (i > 100) {
    i = 100;
}

这段代码不是 java 但我想用 java 转换它。

这是我尝试完成的,但它不起作用

        String elseB = "else {";
        int index = output.indexOf(elseB);
        while (index != -1) {
            output = output.substring(index + 1);
            index = output.indexOf(elseB);
            if (index != -1) {
                int ifAt = index + elseB.length() + 1;
                String elseStart = output.substring(ifAt).trim();
                if (elseStart.startsWith("if")) {
                    int closingBracket = findClosingBracket(
                        output.toCharArray(), index);
                    int openingBracket = ifAt - 1;
                    String justBlock = output.substring(openingBracket,
                        closingBracket).trim();
                    output = output.substring(0, openingBracket - 1) + justBlock + output.substring(closingBracket);
                }
            }

        }

一个更复杂的例子是转换这个:

if (i == 1) {

} else {
    if (i == 2) {

    } else {
        if (i == 3) {

        } else {
            if (i == 4) {

            } else {
                if (i == 5) {

                } else {
                    if (i == 6) {

                    } else {
                        if (i == 7) {

                        } else {
                            if (i == 8) {

                            } else {
                                if (i == 9) {

                                } else {
                                    if (i == 10) {

                                    } else {
                                        if (i == 22) {

                                        } else {
                                            if (i == 11) {

                                            } else {
                                                if (i == 12) {

                                                } else {
                                                    if (i == 25) {

                                                    } else {
                                                        if (i == 13) {

                                                        } else {
                                                            if (i == 14) {

                                                            } else {
                                                                if (i == 15) {

                                                                } else {
                                                                    if (i == 24) {

                                                                    } else {
                                                                        if (i == 16) {

                                                                        } else {
                                                                            if (i == 17) {

                                                                            } else {
                                                                                if (i == 18) {

                                                                                } else {
                                                                                    if (i == 21) {

                                                                                    } else {
                                                                                        if (i == 19) {

                                                                                        } else {
                                                                                            if (i == 20) {

                                                                                            } else {
                                                                                                if (i == 23) {

                                                                                                } else {

                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

进入这个

if (i == 1) {

} else if (i == 2) {

} else if (i == 3) {

} else if (i == 4) {

} else if (i == 5) {

} else if (i == 6) {

} else if (i == 7) {

} else if (i == 8) {

} else if (i == 9) {

} else if (i == 10) {

} else if (i == 22) {

} else if (i == 11) {

} else if (i == 12) {

} else if (i == 25) {

} else if (i == 13) {

} else if (i == 14) {

} else if (i == 15) {

} else if (i == 24) {

} else if (i == 16) {

} else if (i == 17) {

} else if (i == 18) {

} else if (i == 21) {

} else if (i == 19) {

} else if (i == 20) {

} else if (i == 23) {

} else {

}

最佳答案

我假设您想更改代码,而不是编译后的字节码。为此,您将研究文本替换。根据您的编辑器,您可以将此文本的所有实例替换为 elif 语句。如果您的编辑器不能这样做,请查看正则表达式。有了这些,您可以立即更改线路。

关于Java 将 else { if {} } 转换为 elseif {},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32160544/

相关文章:

c - 如果 if 语句重复为真直到为假,则只增加计数器 (++) 一次?

c - 在行号出现中生成第一个索引 '' 3 的函数''

ios - 检查属性值时,“Int”无法转换为 'Range<Int>'

python - 如何在 Python 中使用 XSLT 转换 XML 文件?

java - Tomcat 无法在 Servlet 3.0 中为 JSP 编译类

JAVA_HOME 未正确定义。乌类图

java套接字服务器和嵌入式设备-无法正确处理断开连接

java - 如何在 Spring Data 中将 Java 实体映射到多个 MongoDB 集合?

WPF 触发 VS Converter

WPF 从 Converter 访问 View 模型