假设我有一个字符串“big $”。我需要以下内容:
big$
ig$b
g$bi
$big
我还需要将这些字符串存储在ArrayList中。 有人可以帮帮我吗。我无法想到解决方案。
这就是我所做的。我可以打印它,但我不知道如何存储它们。
private static void rotations(String str) {
int n = str.length();
char temp;
String temp1 = null;
for(int i=0; i<n; i++){
System.out.println();
for(int j=i+1; j<n; j++)
System.out.print(str.charAt(j));
for(int k=0; k<=i; k++)
System.out.print(str.charAt(k));
}
}
答案 0 :(得分:1)
您非常接近,而不是打印出每个char
将其附加到循环内的String
变量,然后将该变量添加到ArrayList<String>
private static List<String> rotations(String str) {
int n = str.length();
char temp;
String temp1 = null;
List<String> retval = new ArrayList<String>();
for(int i=0; i<n; i++){
StringBuilder sb = new StringBuilder();
for(int j=i+1; j<n; j++)
sb.append(str.charAt(j));
for(int k=0; k<=i; k++)
sb.append(str.charAt(k));
retval.add(sb.toString());
}
return retval;
}
您可以在主要方法中打印出来:
public static void main (String[] args)
{
List<String> rotations = rotations("big$");
for(String s : rotations)
{
System.out.println(s);
}
}
答案 1 :(得分:0)
试试这段代码:
String a = "big$";
char[] array = a.toCharArray();
List<String> list = new ArrayList<String>();
for(int i = 0; i < array.length; i++)
{
String temp = "" + array[i];
for( int j = i+1; j < array.length + i; j++)
{
temp += array[j%(array.length)];
}
list.add(temp);
}
答案 2 :(得分:0)
ArrayList的简单示例:
ArrayList<String> container = new ArrayList<String>();
container.add("A");
container.add("B");
container.add("C");
for (int i = 0; i < container.size(); i++) {
System.out.println(container.get(i));
}