【Java筆記試験問題】出力文字列の全配列
2556 ワード
1、テーマ
文字列を入力し、その文字列のすべての配列を印刷します.例えば文字列abcを入力すると、文字a,b,cで並べられるので文字列abc,bac,bca,cab,cbaが印刷される.
2、問題を解く思想
まず文字列を文字配列に変換し、recursionswap関数を確立して文字配列を配列し、開始位置が配列長以上であれば直接出力し、そうでなければその配列の要素位置を循環交換し、異なる配列を印刷します.
3、Javaコード
文字列を入力し、その文字列のすべての配列を印刷します.例えば文字列abcを入力すると、文字a,b,cで並べられるので文字列abc,bac,bca,cab,cbaが印刷される.
2、問題を解く思想
まず文字列を文字配列に変換し、recursionswap関数を確立して文字配列を配列し、開始位置が配列長以上であれば直接出力し、そうでなければその配列の要素位置を循環交換し、異なる配列を印刷します.
3、Javaコード
public class CombinationABC {
public static void main(String[] args) {
String str = “abc”;
char[] arr = str.toCharArray();
int length = arr.length;
recursionSwap(arr,0,length);
}
public static void recursionSwap(char[] arr,int start,int length){
if(start >= length-1){
print(arr);
return;
}
for(int i = start;i < length;i++){
swap(arr,start,i);
recursionSwap(arr,start+1,length);
swap(arr,start,i);
}
}
public static void swap(char[] arr,int index1,int index2){ //
char temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
public static void print(char[] arr){ //
for(int i=0;iout.print(arr[i]);
}
System.out.println();
}
}