Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不使用拆分、子字符串或索引的情况下在特定字符处剪切字符串?_Java - Fatal编程技术网

Java 如何在不使用拆分、子字符串或索引的情况下在特定字符处剪切字符串?

Java 如何在不使用拆分、子字符串或索引的情况下在特定字符处剪切字符串?,java,Java,对于学校作业,我必须在某个字符处切断字符串。它以电子邮件作为输入,例如:name@mail.ca,它必须在@符号前打印所有内容。我们不允许使用子字符串、索引或拆分。我已经附上了到目前为止我尝试过的东西 public static void main(String[] args) { getPrefix("name@email.ca"); } public static String getPrefix(String email) { String prefix = "";

对于学校作业,我必须在某个字符处切断字符串。它以电子邮件作为输入,例如: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;
}
publicstaticvoidmain(字符串[]args){
getPrefix(“name@email.ca");
}

公共静态字符串getPrefix(字符串电子邮件){ 字符串前缀=”; 对于(int i=0;i
如果我将输入设置为name@email.ca它打印:ame@email.caame@电子邮件。caame@email.caame@email.ca

所以现在它只带走了第一个角色,而我需要它带走从@开始的一切


另外,我必须返回值,而不是仅仅打印它,因此我应该如何在循环之外执行该操作。

使用
StringBuilder
将字符串的每个字符附加到
@
之前,如果您不能使用
StringBuilder
您可以使用
string
,但我不建议为此使用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;
   }

publicstaticstringgetprefix(字符串电子邮件){
StringBuilder=新建StringBuilder();//或字符串str=“”;
对于(int i=0;i
使用
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;
   }

publicstaticstringgetprefix(字符串电子邮件){
StringBuilder=新建StringBuilder();//或字符串str=“”;
对于(int i=0;i
email.replaceFirst(“@.*”,”)
这个问题不是很清楚。是否需要函数来返回字符串?如果打印字符串足够好,那么您当前的代码有什么问题?@Gendarme更新了q,很抱歉,将整个内部循环替换为
System.out.print(email.charAt(i))@Gendarme,谢谢,但我意识到它必须返回前缀,而不仅仅是打印它,所以我将我的方法更改为字符串方法。你知道我如何解决这个问题吗?
email.replaceFirst(“@.*”,“”)
这个问题不是很清楚。是否需要函数来返回字符串?如果打印字符串足够好,那么您当前的代码有什么问题?@Gendarme更新了q,很抱歉,将整个内部循环替换为
System.out.print(email.charAt(i))@Gendarme,谢谢,但我意识到它必须返回前缀,而不仅仅是打印它,所以我将我的方法更改为字符串方法。你知道我如何解决这个问题吗?我们唯一可以使用的字符串方法是:e length()、charAt()、equals()、equalsIgnoreCase()、toLowerCase()和toUpperCase()(已更新,但我不建议使用
String
为此,我现在使用String,但现在它不会返回任何东西。如果你能显示代码,你应该打印它或将其分配给变量@UmarVahidypublic static String getPrefix(String email){String prefix=”“;for(int i=0;iString
为此,我现在使用String,但现在它不会返回任何东西。如果你能显示代码,你应该打印它或将其分配给变量@UmarVahidypublic static String getPrefix(String email){String prefix=”“;for(int i=0;i