Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78

Найти буквы, которые присутствуют в одном слове и отсутствуют во втором

07.07.2015, 21:37. Показов 2359. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!

Помогите, пожалуйста, решить задачу. Найти буквы, которые присутствуют в одном слове и отсутствуют во втором.
Я написал код, но компилятор мне выдает ошибку в 25-й строке. Не могу понять, в чем дело...

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
package myhello;
 
public class MyHello {
     public static void main(String[] args) {
 
int i,j,k=0,cnt;
String A="qwerty";
String B="qwab";
String [] arr2={""};
 
System.out.println(A);
System.out.println(B);
    String[] arr = A.split("");
    String[] arr1 = B.split("");
        
    for (i=0; i<arr.length; i++)
    {cnt=0;
        for (j=0; j<arr1.length; j++)
        {
        if(arr[i] != arr1[j])
        cnt++;
        }
            if(cnt==arr1.length)
            {System.out.print(arr[i]);
            arr2[k]=arr[i];
            k++;}
        }
        System.out.print(arr2);
    }
}
Если кто-то знает, в чем дело, сильно прошу исправить ошибку в коде.

Заранее благодарю!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.07.2015, 21:37
Ответы с готовыми решениями:

Сравнить массивы, и элементы, которые присутствуют в одном массиве, но отсутствуют в другом вывести в третий
Есть два int массива, нужно их сравнить и элементы которые присутствуют в одном массиве, но отсутствуют в другом вывести в третий массив. ...

Найти в словаре все слова, в которых использованы только буквы, которые присутствуют в заданном слове
Для заданного длинного слова найти в словаре все слова, в которых использованы только буквы, которые присутствуют в заданном слове. ...

Найти количество тех гласных букв в одном слове, что присутствуют в другом слове
Помогите пожалуйста построить программу. Тип данных - множество. Составьте программу подсчета числа тех гласных букв в слове Х, что...

9
 Аватар для mocivan
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
07.07.2015, 22:53
Лучший ответ Сообщение было отмечено vladimir_Ronny как решение

Решение

Сильно сомневаюсь, что есть смысл искать "ошибку в коде". Предлагаю свою реализацию.
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
import java.util.ArrayList;
 
/**
 * Собрать в кучу буквы, которые есть в одной строке,
 * но отсутствуют в другой
 */
public class StringCompare {
    public static void main(String[] args) {
        String s1 = "qwerty";
        String s2 = "qwab";
 
        System.out.println(compare(s1,s2));
 
    }
 
    private static String compare(String s1, String s2) {
        char[] arr1 = s1.toLowerCase().toCharArray();
        char[] arr2 = s2.toLowerCase().toCharArray();
        ArrayList<Character> result = new ArrayList<>();
        boolean b;
 
        for (int i = 0; i < arr1.length; i++) {
            b = true;
            for (int j = 0; j < arr2.length; j++) {
                if (arr1[i] == arr2[j]){
                    b = false;
                    break;
                }
            }
            if (b){
                for (char c: result){
                    if (c == arr1[i]){
                        b = false;
                        break;
                    }
                }
                if (b) result.add(arr1[i]);
            }
        }
        return result.toString();
    }
}
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
08.07.2015, 00:07
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package myhello;
 
interface ICharFunctor {
    public void call(char c, int x);
}
 
class Pair {
    public char value;
    public int count;
    public Pair(char v, int c) {
        value = v; count = c;
    }
}
class CharCounter {
    Pair[] map;
    int count;
    public CharCounter(int size) {
        map = new Pair[size];
        count = 0;
    }
    public int find(char c) {
        for (int i =0; i < count; ++i) {
            if (map[i].value == c)
                return i;
        }
        return -1;
    }
    public void add(char c) {
        int pos = find(c);
        if (pos < 0) {
            map[count ++] = new Pair(c, 1);
        }
        else {
            ++ map[pos].count;
        }
    }
    public void forEach(ICharFunctor func) {
        for(int i = 0; i < count; ++i) {
            func.call(map[i].value, map[i].count);
        }
    }
    public void addFromString(String s) {
        for (int i=0; i<s.length(); i++) {
            add(s.charAt(i));
        }
    }
}
 
class Utility {
    public static char[] addElement(char[] arr, char val) {
        char[] tmp = new char[arr.length + 1];
        for(int i = 0; i < arr.length; ++i) {
            tmp[i] = arr[i];
        }
        tmp[arr.length] = val;
        return tmp;
    }
    public static void print(char[] arr) {
        for(int i = 0; i < arr.length; ++i) {
            System.out.print(arr[i]);
        }
        System.out.println();
    }
}
 
public class MyHello {
    public static void main(String[] args) {
        String A="qwerty";
        String B="qwab";
        CharCounter cc = new CharCounter(A.length() + B.length());
        cc.addFromString(A);
        cc.addFromString(B);
        cc.forEach(new ICharFunctor() {
            @Override
            public void call(char c, int x) {
                if (x == 1) {
                    System.out.print(c);
                }
            }
        });
        System.out.println();
    }
/*/
    public static void old_main(String[] args) {
        String A="qwerty";
        String B="qwab";
        char [] arr2 = {};
 
        System.out.println(A);
        System.out.println(B);
 
        for (int i=0; i<A.length(); i++) {
            Boolean found = false;
            for (int j=0; j<B.length(); j++) {
                if(A.charAt(i) == B.charAt(j)) {
                    System.out.println("found: " + A.charAt(i));
                    found = true;
                    break;
                }
            }
            if(!found) {
                arr2 = Utility.addElement(arr2, A.charAt(i));
            }
        }
        //Utility.print(arr2);
        System.out.println(arr2);
    }
//*/
}
1
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
08.07.2015, 00:55
vladimir_Ronny,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        String s1="qwerty";
        String s2="qwab";
 
        String[] arr1 = s1.split("");
        String[] arr2 = s2.split("");
 
        for (String  s : arr2) {
            if (Arrays.asList(arr1).contains(s))
                continue;
            System.out.println(s);
        }
    }
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.07.2015, 01:23
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
package easybudda.exclusivechars;
 
import java.util.*;
 
public class ExclusiveChars {
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
 
        while ( true ) {
            System.out.print("First: ");
            if ( ! scanner.hasNext() )
                break;
            String first = scanner.next();
            System.out.print("Second: ");
            String second = scanner.next();
 
            Set<Character> exclusive = new HashSet<Character>();
            for ( char c : first.toCharArray() )
                if ( second.indexOf(c) < 0 )
                    exclusive.add(c);
            
            if ( exclusive.isEmpty() )
                System.out.println("No exclusive characters in first word.");
            else
                System.out.println("Exclusive characters in first word: " + exclusive.toString());
        }
    }
}
1
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
08.07.2015, 02:49
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
    public static void main(String[] args) throws IOException {
        String A = "qwerty";
        String B = "qwab";
        
        char[] sa = A.toLowerCase().toCharArray();
        char[] sb = B.toLowerCase().toCharArray();
        Arrays.sort(sa);
        Arrays.sort(sb);
        
        int i = 0, j = 0;
        while((i < sa.length) && (j < sb.length)){
            if(sa[i] < sb[j])
                System.out.print(sa[i++]);
            else if(sa[i] > sb[j])
                System.out.print(sb[j++]);
            else {
                ++i;
                ++j;
            }
        }
        
        for(; i < sa.length; ++i)
            System.out.print(sa[i]);
        for(; j < sb.length; ++j)
            System.out.print(sb[j]);
    }
1
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78
08.07.2015, 08:39  [ТС]
Спасибо за помощь! Единственное, у меня ни Эклипс, ни NetBeans не распознает "Utility" и "Arrays". Возможно, нужно сверху какой-то заголовок подключить?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.07.2015, 08:44
Лучший ответ Сообщение было отмечено vladimir_Ronny как решение

Решение

если я правильно понял задачу
Java
1
2
3
4
        String a = "qwerty";
        String b = "qwab";
        String diff = a.replaceAll("["+b+"]", "");
        System.out.println(diff);
Bash
1
erty
1
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78
08.07.2015, 08:57  [ТС]
Цитата Сообщение от vladimir_Ronny Посмотреть сообщение
Спасибо за помощь! Единственное, у меня ни Эклипс, ни NetBeans не распознает "Arrays". Возможно, нужно сверху какой-то заголовок подключить?
Всё, разобрался. Для полного счастья мне не хватало
import java.util.Arrays;
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
04.09.2015, 12:44
Вариант мой.
Java
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
        String a = "qwerty";
        String b = "qwab";
              
        for(int i = 0; i < b.length(); i++)  {
            System.out.println((String)b.subSequence(i, i + 1) + " is " + a.contains(b.subSequence(i, i + 1)));
        }
    }
    
}
Bash
1
2
3
4
q is true
w is true
a is false
b is false
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2015, 12:44
Помогаю со студенческими работами здесь

Даны два слова, определить символы которые есть в первом слове и отсутствуют во втором
Даны два слова, определить символы которые есть в первом слове и отсутствуют во втором.

Как найти буквы которые есть в одном слове, но нет в другом
Есть два слова, слова похожи, но отличаются несколькими буквами, как найти эти буквы?

Удалить из первого слова буквы, которые встречаются во втором слове
Даны по одному слову в двух edit, Нужно удалить из первого слова буквы которые встречаются во втором слове.

Определить буквы, которые встречаются только в первом и во втором слове
Даны 4 слова, определить те буквы, которые встречаются только в первом и во втором слове Заранее спасибо!

Найти элементы массива, которые отсутствуют во втором массиве
MPSEQ3-забава с последовательностями #основы Вам дана упорядоченная последовательность из n целых чисел S = s1, s2, ..., sn и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru