2016-02-16 4 views
-1

Я сделал колоду и добился успеха. Тем не менее, у меня возникла проблема с назначением чисел из другого массива и его печать. Например:Как присвоить номер массиву строк в java, а затем распечатать его?

String array = {"Bob","James,"Katie"}; 
int array= {2,1,3}; 

он должен назначить число в массив и печать "James", "Bob", "Katie" строки. Я не хочу импортировать какую-либо библиотеку из Java или использовать предварительные методы в java-библиотеке.

String [] deck2=new String [52]; 
    String[] deck=new String [52]; 



    String suits[]={"Spades","Hearts","Diamonds","Clubs"}; 
    String rank[]={"2","3","4","5","6","7","8","9","10","Jack","King","Queen","Ace"}; 

    for(int i=0;i<deck.length;i++){ 
     deck[i]=rank[i%13]+" "+"of "+suits[i/13]; 
     deck2[i]=deck[i]; 
     System.out.println(deck[i]);} 

    int[] deck3={28, 38, 31, 50, 43, 34, 25, 33, 17, 22, 12, 4, 5, 18, 40, 11, 27, 15, 3, 7, 41, 8, 36, 16, 51, 21, 13, 24, 30, 52, 44, 46, 35, 37, 19, 45, 10, 1, 39, 9, 26, 48, 47, 32, 29, 20, 49, 23, 6, 14, 42, 2 }; 
    for(int k=0;k<52;k++){ 
     for(int j=0;j<52;j++){ 
      deck3[k]=j; 
      System.out.print(deck2[j]); 
     } 


    } 


}} 

ответ

1

Что вы говорите, это немного запутанно, но похоже, что вы заполняли deck3 с значениями индекса deck2 в случайном порядке, и вы хотите использовать их для печати значений deck2.

Если это верно, то, что вы хотите просто прочитать значение INT в deck3 и использовать его в качестве индекса DECK2 следующим образом:

for(int i=0; i<52; i++) { 
    System.out.println(deck2[deck3[i]]); 
} 

or you can read the value first and then use it 

for(int i=0; i<52; i++) { 
    int randomIndex = deck3[i]; 
    System.out.println(deck2[randomIndex]); 
} 

Кроме того, рассматривается вопрос г Адиль указал в своем ответе. Например:

Ваши значения в deck3 должны идти от 0-51 не до 1-52, потому что массивы основаны на 0.

+0

Спасибо, что действительно помогли. – Kingjown

+0

Np, я рад, что смогу помочь. – Dave

0

Array индекс начинается с нуля, так что в массиве suitsSpades имеет индекс 0, а затем, когда вы хотите, чтобы получить это значение, которое вы могли бы сделать так:

String name1 = suits[0]; 

Если указанный индекс больше размера массива или < 0, то это может вызвать ArrayIndexOfBoundException.

Надеюсь, что это поможет вам понять, как обращаться к элементам массива.