Java代写|Individual Project: textprocessor Deliverable 4

Project Goals

In this project, you will be developing a simple Java application (textprocessor) using an agile, test-driven process involving multiple deliverables. While you will receive one grade for the entire project, each deliverable must be completed by its own due date,and all deliverables will contribute to the overall project grade.

Specification of the textprocessor Utility

textprocessor is a command-line utility written in Java with the following specification:

Summary

textprocessor allows for simple text manipulation of the contents of a file.

Syntax

textprocessor [OPTIONS] FILE

Description

Program textprocessor performs basic text transformations on lines of text from an  input FILE. Unless the -o option (see below) is specified, the program writes transformed text to stdout and errors/usage messages to stderr. The FILE parameter is required and must be the last parameter. OPTIONS may be zero or more of the following and may occur in any order:

The program writes the output to output_file_name with transformed text instead of writing to stdout. If output_file_name already exists, the program shall result in an error.

Used with the -r flag and -k flag ONLY; the search of -r or -k becomes case-insensitive.

Keep only the lines containing substring. The search for substring is case-sensitive, unless option -i is set. This option must be mutually exclusive with -r below.

Replaces the first instance of string old in each line with string new. The search for old is case-sensitive, unless option -i is set. This option must be mutually exclusive with -k above.

Adds the string suffix at the end of each line.● -n <padding>

Add a line number followed by a single space to the beginning of each line,where padding is an integer in the inclusive range of 1 to 9 specifying the minimum padding of the line number field. If the number of digits in the line number is less than the specified padding, zeros are left padded until the minimum padding is reached. If the number of digits in the line number is greater than the specified padding, the line number is never truncated. Line numbering should start at 1. This option must be mutually exclusive with -w below.

Removes all whitespace from lines. For this assignment, whitespace will count as any spaces, ” “, or tabs, “\t”, in the input file. It must be mutually exclusive with -n above.

NOTES:

○ Options -o/-i shall be processed first, as they determine global parameters of the computation.

○ Options -k, -r, -n, -w, and -s, shall be processed in this order. That is: (1) if -k is present, then the file content is filtered based on the specified parameter,using a case insensitive search if -i is present; (2) if -r is present, then replacements are performed based on the option parameters, using a case insensitive search if -i is present; (3) if -n is present, then a line number is applied; (4) if -w is present, then whitespace from the line is removed; (5) if -s is present, then a suffix shall be applied.

should be no test cases using these values as option parameters.

program shall generate an error.EXAMPLES OF USAGE (In the following, “↵” represents a newline character.)

Example 1:

textprocessor -o sample.txt FILE

input FILE:

This is the first line of the input file.↵

output sample.txt:

This is the first line of the input file.↵

stdout: nothing sent to stdout

stderr: nothing sent to stderr

Example 2:

textprocessor -r 02 two FILE

input FILE:

Some words are: “one”, “02”, and “three”↵

output file: output file not created

Some words are: “one”, “two”, and “three”↵

stderr: nothing sent to stderr

Example 3:

textprocessor -i -r the A FILE

input FILE:

The file↵

the file↵

output file: output file not created

stderr: nothing sent to stderr

Example 4:

textprocessor -s er FILE

input FILE:

This is cool↵

output file: output file not created

This is cooler↵

stderr: nothing sent to stderrExample 5:

textprocessor -k Java FILE

input FILE:

java is one of the <blank> programming languages.↵

Java is a programming language.↵

Programming languages are neat, an example of one is Java.↵

output file: output file not created

Java is a programming language.↵

Programming languages are neat, an example of one is Java.↵

stderr: nothing sent to stderr

Example 6:

textprocessor -r Question Exclamation -o text -s ! -w FILE

input FILE:

This Sentence Ends In A Question Mark?↵

output text:

ThisSentenceEndsInAExclamationMark?!↵

stdout: nothing sent to stdout

stderr: nothing sent to stderr

Example 7:

textprocessor -n 8 -n 2 -s ## –s ! FILE

input FILE:

I wish this line had a line number..↵

I also wish that..↵

output file: output file not created

01 I wish this line had a line number..!↵

02 I also wish that..!↵

stderr: nothing sent to stderrExample 8:

textprocessor

input FILE:

Today is January 65, 2298.↵

Yesterday was December 0, 3000.↵

Tomorrow we will time travel again.

output file: output file not created

stdout: nothing sent to stdout

Usage: textprocessor [ -o filename | -i | -k substring | -r old new | -n

padding | -w | -s suffix ] FILE

Example 9:

textprocessor -i -k #keep -n 1 -s # FILE

input FILE:

This course’s title is CS6300. #keep↵

CS stands for Counter Strike.↵

It is part of the OMSCS program. #KEEP↵

output file: output file not created

1 This course’s title is CS6300. #keep#↵

3 It is part of the OMSCS program. #KEEP#↵

stderr: nothing sent to stderr

Example 10:

textprocessor -r -k -s FILE

input FILE:

This list contains words that start with -k:↵

output file: output file not created

This list contains words that start with -s:↵

stderr: nothing sent to stderr