在Java中交换字符串的第一个和最后一个字母?

时间:2013-04-06 07:33:37

标签: java string char

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

这是否意味着我的代码有问题???

4 个答案:

答案 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]+" ");
}