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