完成此循环以获得所需输出的首选方法是什么?

时间:2017-04-14 14:30:33

标签: java while-loop nested-if

我写了一个小程序,它只是通过查看电子邮件地址并将字母返回到@字符来获取电子邮件发件人的姓名。

我用两种方式编写了while循环,一种方式是循环,第二种方式是使用嵌套的if语句。两者是一样好还是一种优先于另一种的方法?

循环启动:

public void FindUserName() {

    Scanner keyboard = new Scanner(System.in);
    char symbol = ' ';
    System.out.println("Please enter email!");
    symbol = keyboard.findWithinHorizon(".", 0).charAt(0);

    while (symbol != '@') {
        System.out.print(symbol);
        symbol = keyboard.findWithinHorizon(".", 0).charAt(0);
    }
    System.out.println();
}

如果symbol == '@'

,则使用嵌套的if语句来中断
public void FindUserName() {

    Scanner keyboard = new Scanner(System.in);
    char symbol = ' ';
    System.out.println("Please enter email!");

    while (symbol != '@') {
        symbol = keyboard.findWithinHorizon(".", 0).charAt(0);
        if (symbol == '@') {
            break;
        }
        System.out.print(symbol);
    }
    System.out.println();
}

2 个答案:

答案 0 :(得分:6)

您不需要进行循环,您可以轻松使用:

String email = "email@abd.com";
String str = email.substring(0, email.indexOf("@"));

这将为您提供email

答案 1 :(得分:1)

第二个循环中的if语句没有任何意义,因为而条件已经检查过。

尝试使用正则表达式。备选方案1

String[] splitted = email.split("@");
String name = splitted[0];