[英]Printing from arraylist
我試圖將包含'a-z','A-Z','0-10'的數組存儲到char數組中,並使用shuffle算法對其進行洗牌。 所以我將它們全部存儲在一個arraylist中並嘗試打印它,但我沒有得到數字,而是顯示了空格
static List<char[]> mapelements;
public static char[] generateMapping() {
char[] a=new char[26];
int k=0;
for(int i=0;i<26;i++)
{
a[i]=(char)(97+(k++));
}
System.out.println(a);
char[] A=new char[26];
int l=0;
for(int i=0;i<26;i++)
{
A[i]=(char)(65+(l++));
}
System.out.println(A);
int aLen=a.length;
int Alen=A.length;
char[] result=new char[aLen+Alen];
System.arraycopy(a, 0, result, 0, aLen);
System.arraycopy(A, 0, result, aLen, Alen);
System.out.print(result);
char[] digits=new char[10];
for(char nums='0';nums<=digits.length;nums++)
{
digits[nums]=nums;
}
System.out.println("this is digits"+digits);
System.out.println(digits);
mapelements=new ArrayList<char[]>();
mapelements.add(result);
mapelements.add(digits);
//mapelements.add(' ');
shuffleList(mapelements);
for(char[] shuffle:mapelements)
{
System.out.println("this is shuffle"+Arrays.toString(shuffle));
}
return null; //to be completed
}
public static void shuffleList(List<char[]> a)
{
int n=a.size();
Random rand=new Random();
rand.nextInt();
for(int i=0;i<n;i++){
int change=i+rand.nextInt(n-1);
swap(a,i,change);
}
}
private static void swap(List<char[]> a,int i,int change){
char[] helper=a.get(i);
a.set(i,a.get(change));
a.set(change,helper);
}
您應該使用System.out.println(Arrays.toString(arr))
打印一個數組。
另外,您的數字循環有問題。 它應該是 :
for(char nums='0';nums<'0'+digits.length;nums++)
{
digits[nums-'0']=nums;
}
因為'0'> digits.length,所以永遠不會輸入原始循環,因此循環的條件永遠不會為真。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.