I need to break up a line of text entry into 4 parts to be analyzed. Does anyone know how to code so I take in 4 lines of text, 40 characters per line, and analyze? Thank you for any help on this problem. Here is the algorithm: Algorithm:
*
* 1. User enters multiple lines of text.
* 2. The program will read in the lines of text and display a list of all the
* letters that occur in the text, with the number of times the letter occurs.
* 3. The last line of input should be ended with a period, which serves as a
* sentinel value.
There is a for loop to get the letters of the alphabet and a for loop to record the frequency of alphabet letters in the lines of text.
Problem description:
*
* Напишите программу, которая будет читать от пользователя несколько строк текста * и отображать список всех букв, встречающихся в тексте, а также * количество раз, когда каждая буква встречается , * * Последняя строка ввода от пользователя должна заканчиваться точкой, которая * будет служить в качестве часового значения. После того, как введена последняя строка, счетчики * для всех введенных пользователем букв должны быть перечислены в алфавитном порядке * по мере их вывода. Используйте массив базового типа int длиной 26, чтобы * каждая индексированная переменная содержала счетчик количества букв. * Индексированная переменная массива 0 содержит число a, переменная индексированная массивом * 1 содержит количество b и т. Д. Разрешить вводить как прописные, так и * строчные буквы, но обрабатывать заглавные и строчные версии * одной и той же буквы как равные. * * Подсказки: вам может быть полезно определить "вспомогательный" метод, который принимает символ * в качестве аргумента и возвращает значение int, которое является правильным индексом * для этого символа, например 'a', возвращающее 0, 'b' возвращая 1 и так далее. * Обратите внимание, что вы можете использовать Typecast, чтобы изменить символ на int, как (int) * буква. Это не даст нужное вам число, но если вы вычтете (int) * 'a', у вас будет правильный индекс. Разрешить пользователю повторять эту * задачу, пока пользователь не скажет, что он или она закончили. * * Диалог может выглядеть примерно так: * * Введите несколько строк текста для анализа. (Скопируйте и вставьте, чтобы сэкономить время.) Когда * готово, завершите строку точкой и нажмите возврат. * 1: Четыре счета и семь лет go наши предки * 2: породили на этом континенте новую нацию * 3: зачали на свободе и посвятили
* 4: утверждению, что все люди созданы равными , С уважением, Куанг Фам
import java.util.Scanner ;
/**
* The Letter Counter program counts the frequency of letters of the
* alphabet in some lines of text. After a period and a return, the computer
* displays the frequency.
*
* @author Quang Pham
* @version Module 8, Homework Project 2, 4/1/20
*
* Algorithm:
*
* 1. User enters multiple lines of text.
* 2. The program will read in the lines of text and display a list of all the
* letters that occur in the text, with the number of times the letter occurs.
* 3. The last line of input should be ended with a period, which serves as a
* sentinel value.
*
* Problem description:
*
* Write a program that will read in multiple lines of text from the user
* and display a list of all the letters that occur in the text, along with the
* number of times each letter occurs.
*
* The last line of input from the user should end with a period, which
* will serve as a sentinel value. Once the last line has been entered, the
* counts for all letters entered by the user should be listed in alphabetical
* order as they are output. Use an array of base type int of length 26, so
* that each indexed variable contains the count of how many letters there are.
* Array indexed variable 0 contains the number of a’s, array indexed variable
* 1 contains the number of b’s and so forth. Allow both uppercase and
* lowercase letters as input, but treat uppercase and lowercase versions of
* the same letter as being equal.
*
* Hints: You might find it helpful to define a "helper" method that takes a
* character as an argument and returns an int value that is the correct index
* for that character, such as ‘a’ returning 0, ‘b’ returning 1, and so forth.
* Note that you can use a typecast to change a char to an int, like (int)
* letter. This will not get the number you want, but if you subtract (int)
* 'a', you will then have the right index. Allow the user to repeat this
* task until the user says she or he is finished.
*
* A dialog may look something like the following
*
* Enter several lines of text to analyze. (Copy and paste to save time.) When
* done, end a line with a period and press return.
* 1: Four score and seven years ago our forefathers
* 2: brought forth upon this continent a new nation,
* 3: conceived in liberty, and dedicated to the
* 4: proposition that all men are created equal.
*
* Here's the counts of characters:
* a: 13
* b: 2
* c: 6
* d: 7
* e: 19
* f: 4
* g: 2
* h: 6
* i: 9
* l: 4
* m: 1
* n: 14
* o: 15
* p: 3
* q: 1
* r: 12
* s: 6
* t: 15
* u: 5
* v: 2
* w: 1
* y: 2
*
* JFK's inaugural quotation: “And so, my fellow Americans: ask not what your
* country can do for you – ask what you can do for your country.”
*
* MLK's Washington speech: "I have a dream that one day this nation will rise
* up and live out the true meaning of its creed: “We hold these truths to be
* self-evident, that all men are created equal.”"
*
* Again, you can submit a single class for this project which contains your
* main method and any helper methods where you feel they can be used.
*
* Along with the file containing your program, submit three print screens or
* screen snips, each with several lines of text entered by the user, and the
* count for each character (a-z).
*/
public class LetterCounter
{
public static void main(String[] args) {
int frequency = 0 ;
char character = ' ' ;
String linesOfText = " " ;
int letterTotal = 0 ;
char[] alphabet = new char[26] ; //new alphabet array
for(char ch = 'a'; ch <= 'z'; ++ch)//fills alphabet array with the alphabet
{
alphabet[ch-'a']=ch ;
}
System.out.println("Welcome to the Letter Count program.") ;
System.out.println("Please enter some lines of text followed by a period and a return.") ;
Scanner keyboard = new Scanner(System.in) ;
linesOfText = keyboard.nextLine() ;
//enter linesOfText into an array and divide it into 4 lines
if (linesOfText.contains(".")) //period sentinel is detected
{
System.out.println("Entry finished.") ;
}
//letter frequency counter
System.out.println("Letter Frequency") ;
for (int i = 0; i < alphabet.length; i++)
{ frequency = 0 ;
for (int j = 0; j < linesOfText.length(); j++)
{
character = linesOfText.charAt(j) ;
if (character == alphabet[i])
{
frequency++ ;
}
}
System.out.println(alphabet[i] + "\t\t" + frequency) ;
letterTotal += frequency ;
}
System.out.println("Total number of letters: " + letterTotal + ".") ;
}
}