Java 简化两个if语句

Java 简化两个if语句,java,Java,我有这段代码,我正试图清理和重构 if (i.startsWith("/") || i.startsWith("~~")) { int s = 1; if (i.startsWith("~~")) { s = 2; } i= i.substring(s); } 这是混乱的,因为有两个if语句,很难阅读。有什么方法可以重构吗?考虑到这样一个事实,

我有这段代码,我正试图清理和重构

  if (i.startsWith("/") || i.startsWith("~~")) {

            int s = 1;

            if (i.startsWith("~~")) {
                s = 2;
            }
            i= i.substring(s);
        }

这是混乱的,因为有两个if语句,很难阅读。有什么方法可以重构吗?

考虑到这样一个事实,您似乎只是想找出字符串是如何开始的,如果它是以它开始的,那么您可以使用一个正则表达式开始

public static void main(String[] args) {
    System.out.println(test("~~TestAbc"));
    System.out.println(test("/TestAbc"));
    System.out.println(test("TestAbc"));
}

private static String test(String i) {
    return i.replaceAll("^/|^~~", "");
}
O/p


对于这样一个简单的代码片段,我会:

    if (i.startsWith("/")) {
        i = i.substring(1);
    } else if (i.startsWith("~~")) {
        i = i.substring(2);
    }

如果有四个或五个或更多不同的前缀要去除,我会发明一些更通用的东西。

这也没有意义,好像I.startsWith/| | I.startsWith~是真的,I.startsWith!不可能是真的。简化此代码非常简单:删除内部if,因为它的条件保证为false。使用if-else-if子句或更好的switch语句。我编辑了这个问题,因为我犯了一个错误
    if (i.startsWith("/")) {
        i = i.substring(1);
    } else if (i.startsWith("~~")) {
        i = i.substring(2);
    }