2016-05-12 2 views
-2

Я новичок-кодер и нуждаюсь в некоторой помощи. Я пытаюсь добавить цифры числа вместе в соответствии с числом, соответствующим количеству цифр, которые я могу использовать. Im использует Eclipse Juno и использует отдельный текстовый файл для использования моих номеров. Хотя это не так много, это то, что я сейчас:Добавление цифр в arraylist с директивой

public static void main(String[] args) throws IOException{ 

String token1 = ""; 
Scanner infile1 = new Scanner(new File("input.txt")); 
ArrayList<String> temps = new ArrayList<String>(); 
//Adding Input files to the Arraylist 
while(infile1.hasNext()){ 
    token1 = infile1.next(); 
     temps.add(token1);  
} 
infile1.close(); 
//Calling the Numbers from ArrrayList temps 
    for(int x = 0; x < temps.size(); x++) { 
System.out.println(x + " " + temps.get(x)); 
for(x = 0; x < temps.size(); x++){ 

} 
} 


    } 

} 

Числа 9678415 7, 9678415 6, 9678415 5, 9678415 4, 2678515 3, Количество добавить, цифр использовать. Файл input.txt не имеет запятых

+0

Я забыл упомянуть, чтобы вернуть максимальное числовое значение – LittleRising

+1

Описание того, что вы хотите сделать, непонятно. Пожалуйста, покажите пример ввода, а также ожидаемого результата. – AdrianHHH

+0

Образец вывода должен быть 986541, 987641, 98765, 9876 и 875 – LittleRising

ответ

1

Точно, как вы это сделаете, это зависит от того, как выглядят данные в файле. Вы говорите, что это не разделено запятыми, поэтому я должен предположить, что они разделены линиями. Вам нужно будет отделить значения внутри строк и преобразовать в int; поэтому ниже нужно делать то, что вы пытаетесь, если я понимаю вопрос. (Полное раскрытие информации, это было некоторое время, так как я написал в Java, и я не есть способ проверить это прямо сейчас, убедитесь, что я не сделал каких-либо основных синтаксических ошибок)

ArrayList<Integer> totalArray = ArrayList<Integer>(); 
for(String tStr : temps){ 
    int tempTotal = 0; 
    String[] numArray = tStr.split(" "); 
    for(int x = 0; x < Integer.parseInt(numArray[1]){ 
     int y = Integer.parseInt(numArray[0].substring(x,x+1)); 
     tempTotal += y; 
    } 
    totalArray.add(tempTotal); 
} 

Там вероятно, являются лучшими способами получения наивысшей ценности, но, поскольку я немного из этого не был, я просто сделаю это самым простым способом, о котором я могу думать.

int highestValue = 0; 
for (Integer x : totalArray){ 
    if(highestValue<=x){ 
     highestValue = x; 
    } 
} 
return highestValue; 
+0

P.S. Я думаю, что расширенный цикл, который я использую в этом ответе, доступен только в версиях 1.5 и более поздних. На этом этапе мы довольно хорошо прошли, и я бы предположил, что большинство систем используют версию позже, но подумали, что вам, возможно, понадобится знать. –

Смежные вопросы