Nano Hash - криптовалюты, майнинг, программирование

Прочтите текстовый файл. Отобразите сумму целых чисел рядом с каждой строкой и найдите наибольшую сумму среди них.

45 90 40 30 42 95 64 47 23

14 80 30 84 24 49 16 10 20

Я новичок в Java OOP
Это файл Txt. Я должен вывести сумму целых чисел рядом с каждой строкой
и затем найти наибольшую сумму среди них.

Я могу прочитать файл
Я попытался сделать каждую строку строкой
Я попытался сделать каждую строку строкой типа Int
, но Когда я сделал каждую цифру строки строкой типа Int.
Я не мог понять, как остановить программу в точке, где заканчивается столбец, чтобы я мог напечатать сумму и перейти к следующей строке.

import java.util.Scanner;
import java.io.*;

public class Asst1Problem2{


   public static void main(String[] args){

   int sum = 0;
   int largestSum = 0;

   String line = "";

   try{

      Scanner input = new Scanner(new File("integers2.txt"));


      while(input.hasNextLine()){

         line = input.nextLine();

         System.out.println(line);


      }

   }

   catch(FileNotFoundException fnf){

         System.out.print("no file "  + fnf);

   }

   }
} 

Ожидая получить сумму, но я не понимаю это правильно.


Ответы:


1

Привет, вы можете решить эту проблему с помощью циклов или потоков (java 8+). Я также рекомендую вам использовать try-with-resources. .

Без потоков вы можете использовать следующий пример


public static void main(String[] args) {
    int largestSum = 0;
    try (Scanner input = new Scanner(new File("integers2.txt"))) {
        while (input.hasNextLine()) {
            String[] numbers = input.nextLine().split(" ");
            int sum = 0;
            for (String s : numbers) {
                if (s.matches("^\\d+$")) { // check if the element was an integer number. 
                    int i = Integer.parseInt(s);
                    sum += i;
                }
            }
            System.out.printf("current sum = %s \\n", sum); // print current sum
            largestSum = Math.max(sum, largestSum);
        }
    } catch (FileNotFoundException fnf) {
        System.out.print("no file " + fnf.getMessage());
    }
    System.out.println(largestSum);
}

Подробнее о проверке, является ли строка целым числом

С потоками java-8+ следующий код должен помочь:

public static void main(String[] args) {
    int largestSum = 0;
    try (Scanner input = new Scanner(new File("integers2.txt"))) {
        while (input.hasNextLine()) {
            String[] numbers = input.nextLine().split(" ");
            int sum = Arrays
                            .stream(numbers)
                            .filter(s -> s.matches("^\\d+$"))
                            .mapToInt(s -> Integer.parseInt(s))
                            .sum();
            System.out.printf("current sum = %s \\n", sum); // print current sum
            largestSum = Math.max(sum, largestSum);
        }
    } catch (FileNotFoundException fnf) {
        System.out.print("no file " + fnf.getMessage());
    }
    System.out.println(largestSum);
}
10.09.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..