dabocaiqq
2020-05-19 15:31
采纳率: 66.6%
浏览 218

高分悬赏:Java语言编写一个函数,将字符串向右移动N位,最后面的N个字符放在最左边

高分悬赏:Java语言编写一个函数,将字符串向右移动N位,最后面的N个字符放在最左边

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 毕小宝 2020-05-23 10:14
    已采纳

    不用移位,直接用 StringBuffer ,先获取 N位后的子串拼接,再获取 0-N 部分的子串,合起来就是这个效果了。

    点赞 评论
  • 神农马 2020-05-19 16:34

    最后的n位数移到最左边、是指第一个动作完成后吧

    int n = 4;
        String str="hello everyone welcome to java";
        String result;
        String firstN = str.substring(0,n);
        String firstSurplus = str.substring(n);
        result = firstSurplus.substring(0,n)+firstN+firstSurplus.substring(n);
        String lastN = result.substring(result.length()-n);
        String lastSurplus = result.substring(0,result.length()-n);
        result = lastN+lastSurplus;
        System.out.println(result);
    
    点赞 评论
  • qybao 2020-05-19 18:26

    字符串移位,移动位数可以通过参数调整

    public class Sample {
        public static void main(String[] args) {
            try {
                String str = "abcdefg";
                System.out.println(shiftRight(str, 4));//右移4位
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
        public static String shiftRight(String src, int len) {
            if (src.length() <= len) return src;
            char[] c = src.toCharArray();
            char[] tmp = new char[len];
            System.arraycopy(c, c.length-len, tmp, 0, len);
            System.arraycopy(c, 0, c, len, c.length-len);
            System.arraycopy(tmp, 0, c, 0, len);
            return new String(c);
        }
    }
    
    点赞 评论

相关推荐 更多相似问题