Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2014, 23:22   #1
lenulichkal
Новичок
Джуниор
 
Регистрация: 04.12.2014
Сообщений: 1
По умолчанию Java. Найти в тексте слова, заканчивающиеся на заданную букву. Помогите, написать комментарии к программе

Здравствуйте, помогите пожалуйста написать комментарии к программе

Код:
Код:
package javaapplication1;
import java.util.Scanner;
import java.util.*;

public class JavaApplication1 {

public static void main(String[] args) {
String str;

System.out.println("Введите текст:");
Scanner sc=new Scanner(System.in);
str=sc.nextLine();
System.out.println("Введите букву:");
String c;
c=sc.nextLine();
int i=0;
for (String t: str.split(" "))
{
i++;
}

String [] s=new String[i];

i=0; 
for (String t: str.split(" "))
{
s[i]=t;
i++;
}
int kol=0;
System.out.println("слова заканчивающиеся на букву "+c.charAt(0)); 
Arrays.sort(s);
str="";
for(int j=0;j<i;j++)
{
if (s[j].charAt(s[j].length()-1)==c.charAt(0))
{
System.out.println(s[j]);
kol++;
}
}

System.out.println("их количество= "+kol); 

}
}

Последний раз редактировалось Stilet; 05.12.2014 в 08:09.
lenulichkal вне форума Ответить с цитированием
Старый 05.12.2014, 08:36   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

код, хотя, по всей видимости и работающий, но по сути своей - жуткий.

поясню, почему я так считаю.
например, вместо этих строк:
Цитата:
Код:
int i=0;
for (String t: str.split(" "))
{
i++;
}

String [] s=new String[i];

i=0; 
for (String t: str.split(" "))
{
s[i]=t;
i++;
}
достаточно написать одну(!!!) строчку кода:
Код:
String[] s = str.split(" ");
сравните свой вариант с таким:
Код:
    public static void main(String[] args) {
        System.out.println("Введите текст:");
        Scanner sc = new Scanner(System.in);
        String str = "Rest bara best aloho mara tut bylo ploho";//sc.nextLine();
        System.out.println("Введите букву:");
        String c = "o";  //c= //sc.nextLine();

        String[] s = str.split(" ");
        Arrays.sort(s);

        int kol = 0;
        System.out.println("слова, заканчивающиеся на букву " + c.charAt(0));
        for (int j = 0; j < s.length; j++) {
            if (s[j].charAt(s[j].length() - 1) == c.charAt(0)) {
                System.out.println(s[j]);
                kol++;
            }
        }

        System.out.println("их количество= " + kol);
    }

p.s. я ввод данных закомментарил, задал константы прямо в коде для удобства отладки.
Разумеется, в готовой программе нужно константы выкинуть, код ввода sc.NextLine() расскомментарить!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си. Ввести строку символов. Найти букву, наиболее часто встречающуюся в тексте. ClassicV Общие вопросы C/C++ 8 05.03.2016 22:39
Найти букву, на которую начинается большинство слов в тексте. plixa32 Паскаль, Turbo Pascal, PascalABC.NET 2 01.03.2014 16:10
Из данного предложения вычеркнуть слова, содержащие заданную букву. ayoka Паскаль, Turbo Pascal, PascalABC.NET 1 17.05.2012 13:30
Написать комментарии к программе Space1 Общие вопросы C/C++ 1 03.05.2010 13:35
Найти все слова, отличающиеся от заданного на 1 букву и имеющую ту же длинну. gred Помощь студентам 5 23.05.2008 08:32