如何在不使用split,substring或index的情况下剪切特定字符的字符串?

时间:2019-02-12 00:57:07

标签: java

对于一项学校作业,我必须将字符串截断为某个字符。它以电子邮件作为输入,例如:name@mail.ca,并且必须在@符号之前打印所有内容。我们不允许使用子字符串,索引或拆分。我已经附上了到目前为止我尝试过的内容。

public static void main(String[] args) {
    getPrefix("name@email.ca");
}


public static String getPrefix(String email) {
    String prefix = "";
    for (int i = 0; i < email.length(); i++) {
        if (email.charAt(i) == '@') {
            break;

        }

        prefix += email.charAt(i);
    }
    return prefix;
}

如果我将输入设置为name@email.ca,它将打印:ame @ email.caame @ email.caame @ email.caame @ email.ca

所以现在它只是带走第一个字符,而我需要它从@以后带走所有东西。

而且,我必须返回值而不是仅仅打印它,所以我将如何在循环外执行该操作。

1 个答案:

答案 0 :(得分:2)

使用StringBuilder@之前附加字符串的每个字符,如果不能使用StringBuilder,则可以使用String,但是我不建议使用字符串为此

 public static String getPrefix(String email) {

       StringBuilder builder = new StringBuilder();    // or String str = "";

       for (int i = 0; i < email.length(); i++) {
            if (email.charAt(i) == '@') {
                break;

            }
            builder.append(email.charAt(i));      //or str+=email.charAt(i);
       }
      return builder.toString();                   //or return str;
   }