Java 为什么这个不能正常运行?
所以我已经学习了Java的基础知识,并且正在练习一些新手项目。我目前正在做这个项目: 我不知道为什么我的代码不起作用:Java 为什么这个不能正常运行?,java,string,Java,String,所以我已经学习了Java的基础知识,并且正在练习一些新手项目。我目前正在做这个项目: 我不知道为什么我的代码不起作用: public class main { public static void main(String[] args) { System.out.println(frontBack("java")); } public static String frontBack(String str) { if (str.le
public class main {
public static void main(String[] args) {
System.out.println(frontBack("java"));
}
public static String frontBack(String str) {
if (str.length() < 1) {
return str;
} else if (str.length() >= 2) {
char a = str.charAt(0);
char b = str.charAt(str.length() - 1);
str.replace(a, b);
}
return str;
}
}
公共类主{
公共静态void main(字符串[]args){
System.out.println(frontBack(“java”));
}
公共静态字符串前向(字符串str){
如果(str.length()<1){
返回str;
}else if(str.length()>=2){
字符a=str.charAt(0);
字符b=str.charAt(str.length()-1);
str.replace(a,b);
}
返回str;
}
}
它运行,但不会将前面的字符与后面的字符交换。我看了一下网站上的解决方案,它对我来说也很有意义。。简单得多,但为什么我的代码不能工作?另外,我认为我没有正确使用return关键字…,因为你没有用新值设置str 函数返回一个字符串
public class main {
public static void main(String[] args) {
System.out.println(frontBack("java"));
}
public static String frontBack(String str) {
if (str.length() < 1) {
return str;
} else if (str.length() >= 2) {
char a = str.charAt(0);
char b = str.charAt(str.length() - 1);
str = str.replace(a, b);
//str = str.replace(b, a); maybe you need it
}
return str;
}
}
公共类主{
公共静态void main(字符串[]args){
System.out.println(frontBack(“java”));
}
公共静态字符串前向(字符串str){
如果(str.length()<1){
返回str;
}else if(str.length()>=2){
字符a=str.charAt(0);
字符b=str.charAt(str.length()-1);
str=str.replace(a,b);
//str=str.replace(b,a);也许你需要它
}
返回str;
}
}
简单
return b + str.substring(1, str.length() - 1) + a;
str.replace(…)返回一个字符串,因此(即使它是正确的)您将丢失返回值
方法替换替换字符的一致匹配序列,但需要在两个位置替换不同的值。替换对于最后一个字符不好,因为这个字符可能出现在较早的位置,所以您也应该在那里替换
通常,你还必须考虑StRelthTh()= 1;在这里,它碰巧失败了,并且还返回了原始字符串。但最好在代码中明确这一点:
if( str.length() <= 1 ){
return str;
} else {
char a = str.charAt(0);
char b = str.charAt(str.length() - 1);
return b + str.substring(1, str.length() - 1) + a;
}
如果(str.length()更正您需要分配replace
的结果。但是,replace
对于此作业是错误的工具。我同意,这不是最好的方法。我只是修复代码。