int length = s.length();
if (length <= 1){
return s;
}
else {
return s.charAt(length) + s.substring(1, length-1) + s.charAt(0);
}
我只想交换字符串的第一个字母和最后一个字母。
例如。 apple - &gt; eppla
它编译得很好并且可以使用空字符串或仅包含一个字符的字符串。 但是对于包含多个字符的字符串,它说:
StringIndexOutOfBoundsException occured - see console for stack trace
这是否意味着我的代码有问题???
答案 0 :(得分:4)
试试这个:
int length = s.length();
if (length <= 1) {
return s;
} else {
return s.charAt(length - 1) + s.substring(1, length - 1) + s.charAt(0);
}
差异是s.charAt(length - 1)
。请记住,字符串是零索引的,因此最后一个字符是s.charAt(length - 1)
。
答案 1 :(得分:1)
你想要s.charAt(长度 - 1)开始
答案 2 :(得分:0)
if(str.length()<=1){return str;}
String middle=str.substring(1,str.length()-1);
return str.charAt(str.length()-1)+middle+str.charAt(0);
答案 3 :(得分:-1)
String str;
Scanner sc=new Scanner(System.in);
System.out.println("Enter the String");
str=sc.nextLine();
String word[]=str.split(" ");
int len=word.length;
String temp=word[0];
word[0]=word[len-1];``
word[len-1]=temp;
for (int i = 0; i < word.length; i++) {
System.out.print(word[i]+" ");
}