Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/35: Рейтинг темы: голосов - 35, средняя оценка - 4.51
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232

Как из результатов метода создать массив строк?

30.09.2021, 23:26. Показов 7327. Ответов 99
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Аналогичная проблема встретилась уже второй раз. У меня в коде есть метод, который обрабатывает строки из массива строк и создаёт из них другие строки по определённым параметрам. Я не знаю, как из результатов метода(это несколько символов) создать строку, а из строки новый массив строк. Чтобы впоследствии совершать с новыми строками другие действия. Конкретно сейчас задача: ввести массив строк. Вывести строку, в которой больше всего заглавных букв. Я создала массив (вернее, список) строк с помощью ввода с консоли. Потом написала два метода. Первый обрабатывает строки массива по очереди.Создаёт строку того же размера, что и исходная, из заглавных букв. Сравнивает с исходной и выводит совпадения, т.е. заглавные буквы.Это и есть результат этого метода.Как я понимаю, это просто несколько символов. Даже не строка. Второй метод сравнивает длину новых строк с максимумом и выводит строку с максимальной длиной, т.е. строку с наибольшим количеством заглавных букв. Вроде бы всё логично, но я не знаю, как из результатов первого метода создать массив строк, чтобы перейти ко 2 методу. Я пыталась из символов в 1 методе создать массив, чтобы потом из него создать строку. Но вместо массива выводятся квадраты по количеству символов. Пожалуйста, помогите кто-нибудь. Я решаю это уже неделю.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
public class Bubble {
    public static Scanner sc = new Scanner(System.in);
     public static void main(String[] args) {
         ArrayList<String>strings=new ArrayList<String>();
    int max=0;
    String maxS="";
    char[]result=new char[5];
    for(int i=0;i<5;i++){
      String str=sc.next();
      strings.add(str);// складываем строки в массив
       ArrayList<String>strings1=new ArrayList<String>();
        String[]stringsArr=new String[strings1.size()];
    for(int j=0;j<strings1.size();j++){
        stringsArr[j]=strings1.get(j);
    }
       for(int j=0;j<5;j++){
          String str1="";
      strInMass(str,str1,result);        
      strings1.add(str1);// складываем строки в массив       
    }
       lengthS(stringsArr,max,maxS);
    }
     }
    public static void strInMass(String s,String str1,char[]result){
        int k=0;
                    String n=sc.nextLine();    
     char[]chArray=n.toCharArray();//преобразуем строку в массив
     for(int i = 0; i<chArray.length; i++){
System.out.print(chArray[i]);// выводим массив
     }
    System.out.println();
        String n1=n.toUpperCase();//преобразуем символы строки в верхний регистр
      char[]chArray1=n1.toCharArray(); //преобразуем строку,
      //преобразованную в верхний регистр в массив
    for(int i = 0; i<chArray.length; i++){  
      if(chArray[i]==chArray1[i]){//сравниваем два массива
      result[k]=chArray[i];//засовываем элементы новой строки в массив
      k++;
     System.out.print(chArray[i]+"");//выводим совпадающие элементы,
      //т.е. заглавные буквы в строке str  
      }
 str1=new String(result);//преобразуем массив символов result в строку str1
    }
     }
    public static void lengthS(String[] stringsArr,int max,String maxS){
        //сравниваем длины всех строк в массиве strings1
       for(int j=0;j<stringsArr.length;j++){//пробегаем по массиву     
         if(stringsArr[j].length()==max){//сравниваем длину каждой строки с максимумом
             max=stringsArr[j].length();//находим наибольшее количество заглавных букв среди строк
                   maxS=stringsArr[j];//находим строку с наибольшим количеством заглавных букв
         }  
       }
          System.out.println(maxS);     
}
     }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2021, 23:26
Ответы с готовыми решениями:

Как проверка результатов метода Ньютона программы с настройкой «Поиск решения»
Как проверка результатов программы с помощью MS Excel, корни найти с помощью настройки «Поиск решения». Мне был дан метод Ньютона X^3+X^2+1...

Как создать Массив строк?
вот уж с чем никогда проблем не было.. но не получается создать массив строк. программа должна: 1 создавать массив строк. 2...

Как создать массив строк
как сделать массив строк mas, если n=10^6 Добавлено через 8 часов 25 минут up!

99
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
04.10.2021, 15:39
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Sollita Посмотреть сообщение
Как думаете, почему средняя продолжительность жизни у женщин намного больше, чем у мужчин?
не потому, что войны, тяжелая работа, и т.д.? Довольно легко жить дольше, если твоя функция - рожать и тебя поэтому все оберегают и не посылают, к примеру, тушить пожары. Но у тебя какой-то свой мир, это более менее все поняли, ок )
Цитата Сообщение от Sollita Посмотреть сообщение
Если введены несколько строк с одинаковым количеством заглавных букв, то почему Ваша программа вывела одну?
потому что в задании про это нет ни слова? ты думаешь, что можно не формулировать задание, чтобы все его поняли, потому что все и так знают, что ты хочешь? )
Цитата Сообщение от Sollita Посмотреть сообщение
Я об этом спрашивала?
люди на трех страницах пытаются понять, чего тебе надо, а ты заводишь какую-то радфемную полемику, вместо того, чтобы внятно сформулировать свои потребности, чтобы их можно было понять без привлечения гадалок и хрустальных шаров.
1
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 16:24  [ТС]
Aviz__, надоело Больше не буду писать не по теме.

Добавлено через 7 минут
xoraxax,
Цитата Сообщение от Sollita Посмотреть сообщение
Если введены несколько строк с одинаковым количеством заглавных букв, то почему Ваша программа вывела одну?
потому что в задании про это нет ни слова? ты думаешь, что можно не формулировать задание, чтобы все его поняли, потому что все и так знают, что ты хочешь? )
Я задала этот вопрос не Вам. Но отвечу. Я думаю, что если есть несколько решений у задачи, код должен выводить их все. А не какое-нибудь из них на выбор. Тем более, что мой код именно так и работает.
Вывод же одного решения из трёх - это не решение, а ошибка.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
04.10.2021, 16:28
Цитата Сообщение от Sollita Посмотреть сообщение
Если введены несколько строк с одинаковым количеством заглавных букв, то почему Ваша программа вывела одну?
- такие вещи всегда оговариваются в постановке. Когда число единственное - правильный ответ "любая строка"

Но код легко доработать:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/******************************************************************************
 Ввести с консоли серию из 25 строк. Вывести строкИ, в которой больше всего 
 заглавных букв
 
*******************************************************************************/
 
import java.util.Scanner;
 
public class Main
{
    public static int countCap(String s)
    {
        int i,c=0;
        char a;
        
        for (i=0; i<s.length(); i++)
        {
            a=s.charAt(i);
            if ((a>='A' && a<='Z') || (a>='А' && a<='Я')) c++;
        }    
        return c;
    }
    
    public static void main(String[] args) 
    {
        int i,max=0,j,k=0,ptrN;
        String [] buf = new String[25];  // исходные строки
        int    [] num = new int[25];       // индексы нужных
        
        Scanner inp = new Scanner(System.in);
        
        for (i=0; i<25; i++) num[i]=0;
        ptrN=0;
        
        for (i=0; i<25; i++)
        {
            buf[i]=inp.next();       // читаем строку
            j=countCap(buf[i]);    // считаем заглавные
            if (j>max)                 // если текущий максимум превышен
            {
                num[0]=i;
                ptrN=0;
                max=j;
            }
            else if (j==max)        // если текущий максимум повторен
            {
                num[++ptrN]=i;
            }
            
        }
 
        System.out.println("Строки с максимальным к-вом заглавных букв:");
        
        for (i=0; i<=ptrN; i++)
        {
            k=num[i];
            System.out.println(buf[k]);
        }
 
    }
}
Цитата Сообщение от Sollita Посмотреть сообщение
Я об этом спрашивала?
- вы спрашивали нечто несуразное. "У меня в коде есть метод, который обрабатывает строки из массива строк и создаёт из них другие строки по определённым параметрам. Я не знаю, как из результатов метода(это несколько символов) создать строку, а из строки новый массив строк" Я вам на этот вопрос ответил исчерпывающим образом. А в код ваш даже не смотрел.

Теперь посмотрел.

Вы предложили убийственный алгоритм - формировать строку из заглавных и считать совпадения. Это алгоритический идиотизм (уж извините, но нарвались). Количество заглавных в строке считается элементарным перебором букв и проверкой. За один цикл. Ваш алгоритм требует один цикл на формирование строки из заглавных букв и еще один на сравнение.

При таком подходе как у вас, программировать вы не научитесь... Несмотря на 2 высших

Добавлено через 1 минуту
Цитата Сообщение от Sollita Посмотреть сообщение
Я думаю, что если есть несколько решений у задачи, код должен выводить их все.
А я думаю, что любую. Такие вещи не подразумеваются, а оговариваются.
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 17:10  [ТС]
Catstail,
Надо же, Вы наконец посмотрели мой код! После того как 3 дня о чём-то дискутировали.
На мой вопрос Вы ответили вот этим:
Java
1
2
3
String[] arrS = {"AAA", "BBB", "CCC"};        
 List<String> lst = new ArrayList<String>();       
  lst = Arrays.asList(arrS);
Какое вообще это имеет отношение к моему вопросу? И к моему коду? Вам не кажется, что прежде чем что-то советовать, нужно разобраться в вопросе?
Если Вы считаете, что это ответ на мой вопрос, то почему сами не воспользовались своим советом при написании кода?
Понятно, что мой код не идеальный, я ещё только учусь. Но он, несмотря на два цикла, короче и понятнее Вашего. Тем более, что я никогда раньше не видела, что можно перебором букв считать количество заглавных, поэтому и сделала то, что смогла придумать. Теперь буду знать и использовать и этот способ.
А я думаю, что любую. Такие вещи не подразумеваются, а оговариваются
А я думаю, что если любую, то в реальной жизни это может привести к серьёзным проблемам. А с точки зрения языка и логики, то если бы нужно было вывести любую из строк с наибольшим количеством заглавных букв, то как раз это и должно оговариваться: "Вывести любую из строк...".
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
04.10.2021, 17:15
Цитата Сообщение от Sollita Посмотреть сообщение
А я думаю, что если любую, то в реальной жизни это может привести к серьёзным проблемам.
- виляйте-виляйте... Если я программист и выполнил техническое задание строго - меня оправдает любой суд. А вас обвинят.

Цитата Сообщение от Sollita Посмотреть сообщение
Надо же, Вы наконец посмотрели мой код!
- так, поверхностно... Не обольщайтесь. И впечатление, как я писал выше - негативное.

Не дай мне бог сойтись на бале
Иль при разъезде на крыльце
С семинаристом в желтой шале
Иль с академиком в чепце!

Автора знаете?
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 17:28  [ТС]
Catstail, а это демонстрирует, что у нас разное отношение к жизни. Вас интересует, накажут ли Вас, а меня интересует, выполнена ли задача.
Например, Ваш метод определяет победителей конкурса. Мало того, что он выведет одного победителя из, возможно, десятков, так ещё Вы не будете об этом знать, что ещё хуже.
А с чего Вы вдруг Пушкина вспомнили? (Обратите внимание, это не я перевожу разговор на посторонние темы )
Лучше бы ответили на мой вопрос.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
04.10.2021, 17:36
Цитата Сообщение от Sollita Посмотреть сообщение
Например, Ваш метод определяет победителей конкурса.
- но это ведь не так.
Цитата Сообщение от Sollita Посмотреть сообщение
а меня интересует, выполнена ли задача.
- я вам ее решил, и решил хорошо. Нет?
Цитата Сообщение от Sollita Посмотреть сообщение
Понятно, что мой код не идеальный, я ещё только учусь. Но он, несмотря на два цикла, короче и понятнее Вашего.
- да неужели короче? Вы считать-то умеете (с двумя высшими)?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/******************************************************************************
 Ввести с консоли серию из 25 строк. Вывести строкИ, в которой больше всего 
 заглавных букв
*******************************************************************************/
import java.util.Scanner;
public class Main
{
    public static int countCap(String s)
    {
        int i,c=0;
        char a;
        for (i=0; i<s.length(); i++)
        {
            a=s.charAt(i);
            if ((a>='A' && a<='Z') || (a>='А' && a<='Я')) c++;
        }    
        return c;
    }
    public static void main(String[] args) 
    {
        int i,max=0,j,k=0,ptrN;
        String [] buf = new String[25];  // исходные строки
        int    [] num = new int[25];       // индексы нужных
        Scanner inp = new Scanner(System.in);
        for (i=0; i<25; i++) num[i]=0;
        ptrN=0;
        for (i=0; i<25; i++)
        {
            buf[i]=inp.next();       // читаем строку
            j=countCap(buf[i]);    // считаем заглавные
            if (j>max)                 // если текущий максимум превышен
            {
                num[0]=i;
                ptrN=0;
                max=j;
            }
            else if (j==max)        // если текущий максимум повторен
            {
                num[++ptrN]=i;
            }
        }
        System.out.println("Строки с максимальным к-вом заглавных букв:");
        for (i=0; i<=ptrN; i++)
        {
            k=num[i];
            System.out.println(buf[k]);
        }
    }
}
И я дал несколько ответов на ваш вопрос. В том числе (в посте #37) и такой, каким и сам воспользовался. Так что суть претензий ко мне я не понимаю. Признайтесь, что увлеклись - зауважаю, честное слово!
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 17:48  [ТС]
Catstail, возможны сотни вариантов, при которых поиск одного максимума вместо всех принесёт кучу проблем.
Вы решили задачу, правда я ещё не проверяла её. Но я в этом и не сомневалась. Я предложила Вам её решить с использованием своего совета, как Вы помните. А Вы этого не сделали. Может, совет был не подходящий к случаю?
Считать я умею хорошо
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
public class ArreysSort {
        public static Scanner sc = new Scanner(System.in);
     public static void main(String[] args) {
 List<String> strList = new ArrayList<>();
             for(int i=0;i<5;i++){
      String str=sc.next();
       strList.add(str);// складываем строки в список
} 
    createNewListOnlyUppercaseLetter(strList);    
    }
    private static List<String> createNewListOnlyUppercaseLetter(List<String> src){
//создаём список ret и складываем в него строки из метода //getOnlyUppercaseLetter
         List<String> ret = new ArrayList<>();
        for (String strSrc : src){
            ret.add(getOnlyUppercaseLetter(strSrc));
        }
            //сравниваем длины всех строк в списке ret
        int LargestString=ret.get(0).length();
                for(int z=0;z<ret.size();z++)  
         if(ret.get(z).length()>LargestString)//сравниваем длину каждой строки с максимумом
            LargestString=ret.get(z).length();//находим среди строк строку 
            //с наибольшим количеством заглавных букв 
                   for(int f=0;f<ret.size();f++)
                   if(ret.get(f).length()==LargestString)           
         System.out.println(ret.get(f));
           System.out.println();        
        return ret;   
    }
    private static String getOnlyUppercaseLetter(String src){
        if (src.isEmpty()) return src;
        StringBuilder builder = new StringBuilder();
        for (char strChar : src.toCharArray())
            if (Character.isUpperCase(strChar))
                builder.append(strChar);
        return builder.toString();
    }
}
У меня 40 строк, а у Вас?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
04.10.2021, 18:00
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Scanner;
public class Main
{
    public static int countCap(String s)
    {
        int i,c=0;
        char a;
        for (i=0; i<s.length(); i++) {
            a=s.charAt(i);
            if ((a>='A' && a<='Z') || (a>='А' && a<='Я')) c++;
        }    
        return c;
    }
    public static void main(String[] args) {
        int i,max=0,j,k=0,ptrN;
        String [] buf = new String[25];  // исходные строки
        int    [] num = new int[25];       // индексы нужных
        Scanner inp = new Scanner(System.in);
        for (i=0; i<25; i++) num[i]=0;
        ptrN=0;
        for (i=0; i<25; i++)  {
            buf[i]=inp.next();       // читаем строку
            j=countCap(buf[i]);    // считаем заглавные
            if (j>max)  {              // если текущий максимум превышен
                num[0]=i;
                ptrN=0;
                max=j;
            }
            else if (j==max) {       // если текущий максимум повторен
                num[++ptrN]=i;
            }
        }
        System.out.println("Строки с максимальным к-вом заглавных букв:");
        for (i=0; i<=ptrN; i++) {
            k=num[i];
            System.out.println(buf[k]);
        }
    }
}
Поровну. И мой код, разумеется, проще, даже на глаз.

Добавлено через 5 минут
Цитата Сообщение от Sollita Посмотреть сообщение
Может, совет был не подходящий к случаю?
- совет был подходящим к случаю. Смотрите пост #37. Не надо зацикливаться.
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 18:36  [ТС]
Catstail, вот Ваш совет из N37 :
Java
1
2
3
    String [] arr = new String[10];
    
    for (int i=0; i<10; i++) arr[i]=Объект.Метод(параметры);
В Вашем коде Вы используете создание массива строк, но строки у Вас не из другого метода внутри кода, а со сканнера.
В Вашем методе j=countCap(buf[i]); в какой-то мере ответ на мой вопрос, т.к. строки из массива передаются в другой метод и там подсчитывается количество заглавных букв. А меня интересовал обратный процесс.

Меня осенило. Я воспринимала arr[i]=Объект.Метод(параметры), как получение строки с консоли с помощью сканнера или другого метода, но теперь понимаю, что схема получения строки из метода внутри кода такая же. Однако, как я могла об этом догадаться без единого примера? Это сейчас, после того как мне продемонстрировали в коде, я знаю, как это выглядит и где должно находиться в реальном коде.

По поводу количества строк в коде, если и я уберу все комменты из отдельных строк, как Вы, то у меня будет короче
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
04.10.2021, 19:11
Sollita, попробуйте. У меня тоже есть резерв
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.10.2021, 21:21
Цитата Сообщение от Sollita Посмотреть сообщение
У меня 40 строк, а у Вас?
3:
Java
1
2
3
final var scanner = new Scanner(System.in);
final ToLongFunction<String> counterOfUpperCaseLetters = s -> s.chars().filter(Character::isUpperCase).count();
Stream.generate(scanner::nextLine).limit(25).collect(Collectors.maxBy(Comparator.comparingLong(counterOfUpperCaseLetters))).ifPresent(System.out::println);
1
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 22:26  [ТС]
Catstail, и так видно, что у меня три строчки комментариев

Добавлено через 4 минуты
Arsegg, вот когда я всё это изучу, тогда и посоревнуемся. Как я уже писала, стримы я ещё не изучала.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.10.2021, 22:56
Цитата Сообщение от Sollita Посмотреть сообщение
Как я уже писала, стримы я ещё не изучала.
Что там изучать? Пара вечеров за документацией и чашечкой чая.
Это тебе не Concurrency, где необходимо фундаментальное понимание теории.
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
04.10.2021, 23:25  [ТС]
Arsegg, предпочитаю учить всё по порядку. Закончу двумерные масивы, потом коллекции, потом возьмусь за стримы.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
05.10.2021, 06:20
Sollita, не проблема:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Scanner;
public class Main
{
    public static int countCap(String s) {
        int i,c=0;
        char a;
        for (i=0; i<s.length(); i++) {
            a=s.charAt(i);
            if ((a>='A' && a<='Z') || (a>='А' && a<='Я')) c++;
        }    
        return c;
    }
    public static void main(String[] args) {
        int i,max=0,j,k=0,ptrN=0;
        String [] buf = new String[25];
        int    [] num = new int[25];
        Scanner inp = new Scanner(System.in);
        for (i=0; i<25; i++) {
            buf[i]=inp.next();    
            j=countCap(buf[i]);
            if (j>max) {
                num[0]=i;
                ptrN=0;
                max=j;
            }
            else if (j==max) num[++ptrN]=i;
        }
        System.out.println("Строки с максимальным к-вом заглавных букв:");
        for (i=0; i<=ptrN; i++) {
            k=num[i];
            System.out.println(buf[k]);
        }
    }
}
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
05.10.2021, 10:51  [ТС]
Catstail, так и у меня есть резервы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.*;
import java.util.ArrayList;
public class Bubble {
    public static Scanner sc = new Scanner(System.in);
     public static void main(String[] args) {
  List<String> strList = new ArrayList<>();
      for(int i=0;i<5;i++){
      String str=sc.next();
      strList.add(str);// складываем строки в список
} 
      System.out.println();              
    createNewListOnlyUppercaseLetter(strList);    
    }
    private static List<String> createNewListOnlyUppercaseLetter(List<String> src){
        List<String> ret = new ArrayList<>();
        for (String strSrc : src)
            ret.add(getOnlyUppercaseLetter(strSrc));
        int LargestString=ret.get(0).length();
                for(int z=0;z<ret.size();z++)  
        if(ret.get(z).length()>LargestString)LargestString=ret.get(z).length();  
                   for(int f=0;f<ret.size();f++)
        if(ret.get(f).length()==LargestString)System.out.println(ret.get(f));           
        return ret;   
    }
    private static String getOnlyUppercaseLetter(String src){
        if (src.isEmpty()) return src;
        StringBuilder builder = new StringBuilder();
        for (char strChar : src.toCharArray())
        if (Character.isUpperCase(strChar)) builder.append(strChar);         
        return builder.toString();
    }
}
Но не вижу в этом смысла. Канель пишет, что код должен быть "дружественным к прочтению", и я с ним согласна.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.10.2021, 11:00
Цитата Сообщение от Sollita Посмотреть сообщение
и я с ним согласна
но при этом продолжаешь меряться длиной
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
05.10.2021, 11:19  [ТС]
Catstail, я посмотрела последний вариант Вашего кода и не поняла, почему Вы написали num[++ptrN]=i;?
Я бы написала num[ptrN]=i;ptrN++; или num[ptrN++]=i;. Я проверила, оно так тоже работает, просто выводит строки в другом порядке. Для чего Вы использовали декремент? Я вообще плохо поняла эту тему и поэтому декрементом не пользуюсь.

Добавлено через 4 минуты
xoraxax, люблю играть в интеллектуальные игры Любые.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.10.2021, 11:35
Цитата Сообщение от Sollita Посмотреть сообщение
интеллектуальные игры
меряться длиной - интеллектуальная игра?
Цитата Сообщение от Sollita Посмотреть сообщение
Для чего Вы использовали декремент?
это не декремент
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2021, 11:35
Помогаю со студенческими работами здесь

History. Как создать массив строк, как его заполнить, и как производить перебор элементов
Добрый день, мне нужно реализовать некое подобие хистори. Поясню: есть некое окно, в котором вводится сообщение и при его отправки, тобишь...

Как создать двумерный массив строк
Добрый день. Я хочу сделать двумерный массив строк, создаю его, но при выводе нужно перегрузить оператор вывода(&lt;&lt;), как его...

Как создать динамический массив строк?
Делаю лабораторную и пока только разбираюсь, как создать динамический массив строк Написал вот это, но при печати строки появляется...

Как создать массив строк, считанных из файла?
Необходимо создать массив из строк, которые находятся в файле. После того, как мы загоним каждую строку в отдельную ячейку массива, нужно...

Как создать массив строк типа String^?
Как создать массив строк типа String^ ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru