2014-10-02 3 views
1

Я должен заранее извиниться, если на этот вопрос был дан ответ, я пока не смог найти ответ на эту проблему на форуме.Разделение строки из текстового файла на два отдельных массива

Я работаю над проблемой Эйлера проекта, проблема 54, если быть точным, и я должен читать 1000 строк данных, каждая строка содержит две случайно созданные руки покера, первая половина линии - рука игрока 1 , второй - игрок 2.

Ниже приведен пример расположения документа:

8CTSKC9H4S 7D2S5D3SAC

5CAD5DAC9C 7C5H8DTDKS

3H7H6SKCJS QHTDJC2D8S

TH8H5CQSTC 9H4DJCKSJS

То, что я сделал до сих пор есть вручную сделайте два документа, копирующих вторую «руку» из каждой строки и добавляя ее к новому документу Мент. Однако я сделал это дважды и придумал два разных результата, поэтому, думаю, я делаю ошибку где-то со всем копированием. Ниже приведено пример из приведенных выше функций я использовал:

ArrayList<String> player1 = new ArrayList<String>(); 
    ArrayList<String> player2 = new ArrayList<String>(); 
    String file1 = "FilePath1"; 
    String file2 = "FilePath2"; 
    Scanner input1 = new Scanner(new File(file1)); 
    while(input1.hasNext()) { 
     player1.add(input1.nextLine()); 
    } 
    Scanner input2 = new Scanner(new File(file2)); 
    while(input2.hasNext()) { 
     player2.add(input2.nextLine()); 
    } 

    input1.close(); 
    input2.close(); 

Что я хотел бы знать, как я мог читать только первую руку в ArrayList, а затем только вторая рука в другой. Без необходимости создавать два отдельных документа и риск компрометации данных. Я не уверен, как я могу использовать функцию Split здесь, если это путь. Я довольно новичок в программировании, я пытаюсь научить себя, поэтому я прошу прощения, если это слишком простая проблема.

Большое спасибо заранее

+0

взгляните на этот http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java –

+0

Спасибо, Абдул, я не могу поверить, что я пропустил это:/ – Richard

+0

это нормально, я нашел его через google;) –

ответ

1

Вы можете разделить на пространстве (все пробельные)

Например:

String currLine = input1.nextLine(); 
//This only needed if you are not sure if the input will have leading/trailing space 
currLine = currLine.trim(); 
String[] split = currLine.split("\\s+"); 
//Ensuring the line read was properly split 
if(split.length == 2) { 
    //split[0] will have the first hand 
    player1.add(split[0]); 
    //split[1] will have the second hand 
    player2.add(split[1]); 
} 
+0

Большое вам спасибо за помощь , который работал как шарм :). Я бы поднял голову, если бы моя репутация позволила :). – Richard