【问题标题】:Swapping the first and the last letter of a string in Java?在Java中交换字符串的第一个和最后一个字母?
【发布时间】:2013-04-06 07:33:36
【问题描述】:
int length = s.length();

if (length <= 1){
    return s;
}

else {

    return s.charAt(length) + s.substring(1, length-1) + s.charAt(0);

}

我只是想交换字符串的第一个字母和最后一个字母。

例如。苹果 -> eppla

它编译得很好,并且可以很好地处理一个空字符串或一个只有一个字符的字符串。 但是对于带有多个字符的字符串,它会说:

StringIndexOutOfBoundsException occured - see console for stack trace

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

【问题讨论】:

  • 请记住,长度比字符串中的最后一个元素大一。例如,字符串 word 的长度为 4 但 charAt(3) 为 d

标签: java string char


【解决方案1】:

试试这个:

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)

【讨论】:

    【解决方案2】:

    你想让 s.charAt(length - 1) 开始

    【讨论】:

      【解决方案3】:
      if(str.length()<=1){return str;}
      
      String middle=str.substring(1,str.length()-1);
      
      return str.charAt(str.length()-1)+middle+str.charAt(0);
      

      【讨论】:

        【解决方案4】:
        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]+" ");
        }
        

        【讨论】:

        • 这是一个非常简单的代码,用于交换字符串中的第一个和最后一个单词。
        猜你喜欢
        • 2013-06-17
        • 2016-10-16
        • 1970-01-01
        • 2021-03-07
        • 2013-12-23
        • 2018-07-21
        • 2018-10-07
        • 1970-01-01
        • 2021-02-19
        相关资源
        最近更新 更多