При вводе у меня есть какая-то строка: «сегодня идет снег знаю», здесь у меня есть 3 слова, поэтому я должен разобрать их следующим образом: каждый символ должен сравниваться со всеми другими символами, и суммировать, сколько этих символов онислова имеют, например, пример для буквы «о» будет 2 (от «сегодня» и «идет снег») или буква «W» будет 2 (от «знать» и «идет снег»).После этого я должен заменить эти символы числом (преобразованным в формат char) букв.Результат должен быть «13111 133211 1332».
Что я сделал?
Сначала я записываю на пленку некоторые слова и
public void inputStringsForThreads () {
boolean flag;
do {
// will invite to input
stringToParse = Input.value();
try {
flag = true;
// in case that found nothing , space , number and other special character , throws an exception
if (stringToParse.equals("") | stringToParse.startsWith(" ") | stringToParse.matches(".*[0-9].*") | stringToParse.matches(".*[~`!@#$%^&*()-+={};:',.<>?/'_].*"))
throw new MyStringException(stringToParse);
else analizeString(stringToParse);
}
catch (MyStringException exception) {
stringToParse = null;
flag = false;
exception.AnalizeException();
}
}
while (!flag);
}
Я удаляю пробелы между словами и из этихслова составляют всего одно
static void analizeString (String someString) {
// + sign treat many spaces as one
String delimitator = " +";
// words is a String Array
words = someString.split(delimitator);
// temp is a string , will contain a single word
temp = someString.replaceAll("[^a-z^A-Z]","");
System.out.println("=============== Words are : ===============");
for (int i=0;i<words.length;i++)
System.out.println((i+1)+")"+words[i]);
}
Поэтому я пытаюсь сравнить каждое слово в части (каждое слово разбито на буквы) со всеми буквами из всех слов, но я не знаю, как посчитать количество той же буквы ипосле замены букв на правильные номера каждой буквы ???Есть идеи?
// this will containt characters for every word in part
char[] motot = words[id].toCharArray();
// this will containt all characters from all words
char[] notot = temp.toCharArray();
for (int i =0;i<words[i].length();i++)
for (int j=0;j<temp.length ;j++)
{
if (i == j) {
System.out.println("Same word");
}
else if (motot[i] == notot[j] ) {
System.out.println("Found equal :"+lol[i]+" "+lol1[j]);
}}