Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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


Ответ
 
Опции темы
Старый 26.11.2019, 15:33   #1
decider!
 
Регистрация: 26.11.2019
Сообщений: 5
Вопрос Нужна помощь с разделённым массивом типа string.

Для начала объясню, что сделал, разделил слова от запятой в массив, затем привёл их к нижнему регистру и убрал из них пробелы.
Потом запустил программу, которая заменяет уже встречавшиеся слова на zxc и считает, сколько раз употреБЛЯется слово
Почему при сравнении одинаковых элементов массива программа думает, что они разные?

Код:
package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        boolean start;
        Scanner scan = new Scanner (System.in);
        int n = 0;
        System.out.println("Введите слова в строчку, разделяя их запятой");
        String line = scan.nextLine();
        String[] str;
        str = line.split (",");
        for (int i = 0; i < str.length; i++) {
            str[i] = str[i].trim();
            str[i] = str[i].toLowerCase();
        }
        for (int i = 0; i < str.length; i++) {
            for (int k = i+1; k < str.length; k++) {
                if ((str[i] == str[k]) && (str[k] != "zxc")) {
                    str[k] = "zxc";
                    n++;
                }
                System.out.println("\""+str[i]+"\" повторяется "+n+" раз.");
                n = 0;
            }
        }
    }
}
decider! вне форума Ответить с цитированием
Старый 26.11.2019, 16:36   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 2,701
По умолчанию

Код:
package com.company;

import java.util.Scanner;
public class HelloWorld{

     public static void main(String []args){
         boolean start;
        Scanner scan = new Scanner (System.in);
        int n = 0;
        String line = "Введите,слова,в,строчку,строчку,разделяя,их,запятой";
        String[] str;
        str = line.split (",");
        for (int i = 0; i < str.length; i++) {
            str[i] = str[i].trim();
            str[i] = str[i].toLowerCase();
        }
        n=1;
        for (int i = 0; i < str.length; i++) {
            if (str[i].equals("zxc") == false){
                for (int k = i+1; k < str.length; k++) {
                    if ((str[i].equals(str[k])) && (str[k] != "zxc")) {
                        n++;
                        str[k] = "zxc";
                    }
                }
            
                System.out.println("\""+str[i]+"\" повторяется "+n+" раз.");
                n = 1;
            }
        }
     }
}
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. на форуме Ответить с цитированием
Старый 26.11.2019, 18:11   #3
decider!
 
Регистрация: 26.11.2019
Сообщений: 5
По умолчанию

Благодарочка
decider! вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь с двумерным массивом syavon Общие вопросы C/C++ 3 14.12.2018 20:53
написать 2 простые програмы с массивом типа char и string fruktovaya Паскаль, Turbo Pascal, PascalABC.NET 0 30.10.2011 20:04
Нужна помощь (задача с массивом)... Goldberg Паскаль, Turbo Pascal, PascalABC.NET 36 19.04.2011 20:31
Нужна помощь с одномерны массивом!!! KnighTeX Помощь студентам 0 09.10.2009 20:55
С массивом нужна помощь !! zerob132 Паскаль, Turbo Pascal, PascalABC.NET 11 11.05.2009 17:10