Java将else{if{}转换为elseif{}
我正在寻找java或类似语言中的任何现有代码或库,以便在以下情况下进行转换(这不是java,而是一种自定义语言) 一个更复杂的例子是转换:Java将else{if{}转换为elseif{},java,if-statement,converter,Java,If Statement,Converter,我正在寻找java或类似语言中的任何现有代码或库,以便在以下情况下进行转换(这不是java,而是一种自定义语言) 一个更复杂的例子是转换: if (i == 1) { } else { if (i == 2) { } else { if (i == 3) { } else { if (i == 4) { } else { if (i == 5) {
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语句替换此文本的所有实例。如果您的编辑器不能做到这一点,请查看正则表达式。有了这些,您可以立即更改行。如果尝试测试单个值和各种条件,可以尝试使用switch statemenet代替各种If语句 即
开关(一){
案例(i=100):
i=100;
}
你的确切意思是什么?某种IDE插件?@BorisTheSpider不管怎样,这都是对工具或库的离题请求,不是吗?@yshavit是的,当然。但在我投票结束之前,我想知道OP到底在问什么。我更倾向于在关键时刻以不清楚的方式结束…@Boristespider我已经从自定义编程语言反编译了代码。我不需要任何IDE插件,只是一个可以转换它的方法。我自己试过了,但没用。老实说,我不会把它改成else if
,而是从一开始就尽量避免整个if/else
,因为一个代码闻起来就是一个代码闻起来,即使你“擦亮”它一点。这在Java中不起作用。大小写必须是常量,并且只检查是否相等。@yshavit正如作者所说,要处理的代码“不是Java”。所以我们不知道它在他的语言中是否有效。@qqilihq在我发表评论时,编辑(在问题中)不在那里。通过编辑,我会将我的评论修改为“在不知道目标语言是什么的情况下,没有理由假设这个语法在其中是有效的。”不管怎样,这个答案似乎并没有切中要害。(但要记录在案的是,我不是选民中的一员。)
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 {
}
switch(i){
case(i <= 0):
i=0;
case(i >= 100):
i=100;
}