首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何旋转字符串,一次旋转一个字符?

如何旋转字符串,一次旋转一个字符?
EN

Stack Overflow用户
提问于 2019-07-12 02:09:58
回答 2查看 390关注 0票数 -1

我无法完成这个模式的逻辑,我已经尝试了每一种if-else语句

这是我正在执行的代码:

代码语言:javascript
复制
import java.util.Scanner;

public class String_pattern_01 {



public static void main(String[] args) {

        Scanner sc= new Scanner(System.in);
        System.out.println("Enter the character in continuation to get the pattern");
        String s=sc.next();
        int d=s.length();
        String s2[]=s.split("");
        for(int i=0;i<=s.length();i++)
        {    
            String x= s.substring(i, d);

            if(i>=1&i<d)
            {
                for(i=1;i<d;i++)
                {String y=x+x.substring(0,i-1);
                System.out.println(y);}
            }
            else
            {

                System.out.println(x);
            }

        }

    }

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-12 02:31:39

可以简单地将代码减少到单个for循环:

代码语言:javascript
复制
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the character in continuation to get the pattern");
    String s = sc.next();

    int d = s.length();
    for(int i = 0; i < d; i++)
    {    
        s = s.substring(1, d) + s.charAt(0);
        System.out.println(s);
    }

示例运行:输入为abcde这将输出:

代码语言:javascript
复制
bcdea
cdeab
deabc
eabcd
abcde

循环在每次迭代中创建一个新的String,方法是使用charAt(0)获取String的第一个字符,然后将其附加到跳过第一个字符的substring的末尾。

票数 1
EN

Stack Overflow用户

发布于 2019-07-12 02:24:58

代码语言:javascript
复制
public static void main(String[] args) {
  String input = "abcde";

  List<String> asList = input.chars()
    .mapToObj(e -> (char) e)
    .map(String::valueOf)
    .collect(Collectors.toList());

  for (int i = 0; i <= input.length(); i++) {
    System.out.println(String.join("", asList));
    Collections.rotate(asList, -1);
  }
}

  1. 将输入String转换为List,其中列表的每个元素都是单个字符
  2. 将列表连接到一个String并将其打印出来
  3. 向左旋转List,然后重复

这是(某种)明确的方法,将String转换为List的仪式是比实际工作更大的问题,但一旦我们得到它,这段代码的作用就很清楚了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56995113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档