Write a program that processes a text data file of names in

Write a program that processes a text data file of names in which each name is on a separate line of at most 80 characters. See two sample names below: Hartman-Montgomery, Jane R. Doe, J. D. On each line the surname is followed by a comma and a space. Next comes the first name or initial, then a space and the middle initial. Your program should scan the names into three arrays - surname, first, and middle_init. If the surname is longer than 15 characters, store only the first 15. Similarly, limit the first name to ten characters. Do not store periods in the first and middle_init arrays. Write the array’s contents to a file named names_output.txt, aligning the contents of each column, as shown below for the sample data above:

Hartman-Mongom Jane R
Doe J D

Solution

PROGRAM CODE:

package sample;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.regex.Pattern;

public class NameProcessor {

   public static void main(String args[])

   {

       String[] surname = new String[10];

       String[] first = new String[10];

       String[] middle_init = new String[10];

       int counter = 0; //counter for the array

      

       //Reading the names file and storing the data

       // using buffered reader to read from the names_input.txt file

       System.out.println(\"INPUT NAMES: \ \");

       try(BufferedReader br = new BufferedReader(new FileReader(\"names_input.txt\"))) {

          for(String line; (line = br.readLine()) != null; ) {

       //Storing each line of the file into a string called line and then splitting the line based on space

       //after splitting the different words get stored in the names array

             System.out.println(line);

             String[] names = line.split(Pattern.quote(\" \"));

             // now the first index folds the last name, the second index holds the first name and the last index holds the middle name

             surname[counter] = names[0].trim();

             first[counter] = names[1].trim();

             middle_init[counter] = names[2].trim();

             counter++;

          }

          br.close();

          // line is not visible here.

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       //Processing the names

       for(int i=0; i<counter; i++)

       {

           int lengthOfSurname = surname[i].length();

           //removing the comma

           if(surname[i].contains(\",\"))

               surname[i] = surname[i].substring(0, lengthOfSurname-1);

           lengthOfSurname--;

           // removing the period for middle and first names

           if(middle_init[i].contains(\".\"))

               middle_init[i] = middle_init[i].substring(0, middle_init[i].length()-1);

           if(first[i].contains(\".\"))

               first[i] = first[i].substring(0, first[i].length()-1);

          

           //checking if the surname length is > 15

           if(lengthOfSurname>15)

           {

               surname[i] = surname[i].substring(0, 15); // index starts from 0

           }

          

       }

      

       //Printing the output

       System.out.println(\"\ OUTPUT NAMES: \ \");

       for(int i=0; i<counter; i++)

       {

           System.out.println(surname[i] + \" \" + first[i] + \" \" + middle_init[i]);

       }

   }

}

OUTPUT:

INPUT NAMES:

Hartman-Montgomery, Jane R.

Doe, J. D.

OUTPUT NAMES:

Hartman-Montgom Jane R

Doe J D

Write a program that processes a text data file of names in which each name is on a separate line of at most 80 characters. See two sample names below: Hartman-
Write a program that processes a text data file of names in which each name is on a separate line of at most 80 characters. See two sample names below: Hartman-
Write a program that processes a text data file of names in which each name is on a separate line of at most 80 characters. See two sample names below: Hartman-

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site