MiniMi2022

Word Or Number 3

Feb 15th, 2022 (edited)
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.91 KB | None | 0 0
  1. import java.text.DecimalFormat;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4.  
  5. public class Problem11_WordOrNumber3_2 {
  6.     public static void main(String[] args) {
  7.         Scanner myScan = new Scanner(System.in);
  8.         int n = Integer.parseInt(myScan.nextLine());
  9.         String typePrevious = "";
  10.         String typeCurrent = "word";
  11.         ArrayList<Double> numbers=new ArrayList<>();
  12.         ArrayList<String> words=new ArrayList<>();
  13.         DecimalFormat decimalFormat = new DecimalFormat("0.##########");
  14.         for (int i = 0; i < n; i++) {
  15.             String text = myScan.nextLine();
  16.             for (int j = 0; j < text.length(); j++) {
  17.                 if (Character.isDigit(text.charAt(j))) {
  18.                     typeCurrent = "number";
  19.                     break;
  20.                 }
  21.             }
  22.             if (typeCurrent.equals(typePrevious)) {
  23.                 if (typeCurrent.equals("number")) {
  24.                     numbers.add(Double.parseDouble(text));
  25.                 } else {
  26.                     words.add(text);
  27.                 }
  28.             } else {
  29.                 if (typeCurrent.equals("number")) {
  30.                     System.out.println(!words.isEmpty() ? String.join("-",words):"");
  31.                     numbers.add(Double.parseDouble(text));
  32.                     words=new ArrayList<>();
  33.                 } else {
  34.                     double sum=numbers.stream().mapToDouble(value -> value).sum();
  35.                     System.out.println(sum!=0?decimalFormat.format(sum):"");
  36.                     numbers=new ArrayList<>();
  37.                     words.add(text);
  38.                 }
  39.             }
  40.             typePrevious = typeCurrent;
  41.             typeCurrent = "word";
  42.         }
  43.         double sum=numbers.stream().mapToDouble(value -> value).sum();
  44.         System.out.println(!words.isEmpty()
  45.                 ? String.join("-",words):sum!=0?decimalFormat.format(sum):"");
  46.     }
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment