Java代写:CS6300Textprocessor


实现一个 [ Textprocessor ](https://www.techopedia.com/definition/22541/text-
processing “Textprocessing”) 并通过测试,注意命令参数的逻辑顺序。
Textprocessor

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 an order:

  • -o output_file_name
    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.
  • -i
    Used with the -r flag and -k flag ONLY; the search of -r or -k becomes case-
    insensitive.
  • -k substring
    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.
  • -r old new
    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.
  • -s suffix
    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.
  • -w
    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

  • While the last command-line parameter provided is always treated as the filename, OPTIONS flags can be provided in an order and shall be applied as follows:
    • Options -o/-i shall be processed first, as the 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.
  • To keep this application simple, all errors shall result in display of the standard usage message.
  • Specifying option -i without having specified option -r or -k shall result in an error.
  • Specifying option -k with an empty string as the substring parameter should keep all input lines.
  • Specifying option -r with an empty string as the old parameter or option -s with an empty string as the suffix parameter shall result in an error.
  • Specifying options -r and -k simultaneously shall result in an error.
  • Specifying option -n with a non-integer value or an integer out of range shall result in an error.
  • Specifying options -n and -w simultaneously shall result in an error.
  • If options are repeated, only their last occurrence is applied.
  • All program option parameters are required, resulting in an error if omitted.
  • You shall assume that the command line parameter strings will not contain newline characters (\r, \n, and so on), as the behavior of the program would be platform dependent and may result in errors during grading. Therefore, there should be no test cases using these values as option parameters.
  • An empty input file shall produce an empty output file.
  • The last line of a non-empty input file must be newline terminated. Otherwise, the program shall generate an error.

EXAMPLES OF USAGE

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
stdout:
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
stdout:
A file
A file
stderr: nothing sent to stderr

Example 4

textprocessor -s er FILE

input FILE:
This is cool
output file: output file not created
stdout:
This is cooler
stderr: nothing sent to stderr

Example 5

textprocessor -k Java FILE

input FILE:
java is one of the programming languages.
Java is a programming language.
Programming languages are neat, an example of one is Java.
output file: output file not created
stdout:
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
stdout:
01 I wish this line had a line number..!
02 I also wish that..!
stderr: nothing sent to stderr

Example 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
stderr:
Usage: textprocessor [ -o filename | -i | -k substring | -r old new | -n padding | -w | -s suffix ] FILE


文章作者: SafePoker
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 SafePoker !
  目录