Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
jerom1234
0 / 0 / 0
Регистрация: 18.10.2014
Сообщений: 71
1

Удалить повторяющиеся элементы строки

17.02.2016, 11:47. Просмотров 684. Ответов 3
Метки нет (Все метки)

Пусть дана строка, состоящая из слов, отделенных друг от друга одним и более пробелами.
Сформировать новую строку, состоящую из слов исходной строки. В словах оставить символы, которые встречаются только один раз (в том порядке, в котором они встречаются в слове).
пример: "а роза упала на лапу азора", результат:"а роза упала на лапу азор"
вот что у меня есть, но там удаляет абсолютно все повторяющиеся элементы, а не так как надо по условию
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string word1 = "а роза упала на лапу азора";
            string[] word = word1.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
            int first = -1;
            int last = -1;
            foreach (char ch in word1)
            {
                first = word1.IndexOf(ch);
                last = word1.LastIndexOf(ch);
                if (first != -1 && last != -1 && first != last)
                    word1 = word1.Replace(ch.ToString(), "");
            }
            Console.Write(word1);
            Console.ReadKey();
 
        }
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2016, 11:47
Ответы с готовыми решениями:

Удалить повторяющиеся элементы массива
Нужно удалить повторяющиеся элементы массива, оставляя только первое вхождение....

Удалить повторяющиеся элементы из текста
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов...

Удалить из массива повторяющиеся элементы
Дан массив размерностью 20*15, заполненый случайными числами long int....

Удалить из массива повторяющиеся элементы
Удалить из массива повторяющийся элементы,оставив только из первые вхождения!

Как удалить из массива повторяющиеся элементы
Собственно сабж - как сделать так, чтобы удалялись все повторяющие элементы,...

3
Сергей Мойся
1 / 1 / 3
Регистрация: 13.05.2013
Сообщений: 24
17.02.2016, 12:58 2
C#
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
using System;
using System.Collections;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
 
internal class Program
{
    private static void Main()
    {
        string word1 = "а роза упала на лапу азора";
        string[] words = word1.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
 
        List<string> newString = new List<string>();
        foreach (string word in words)
        {
            string newWord = "";
            foreach (char letter in word)
            {
                if (!newWord.Contains(letter))
                    newWord += letter;
            }
            newString.Add(newWord);
        }
 
        string newWord1 = String.Join(" ", newString.ToArray());
 
        Console.WriteLine(newWord1);
        Console.ReadKey();
    }
}
0
greg zakharov
Покинул форум
1967 / 837 / 242
Регистрация: 07.05.2015
Сообщений: 1,679
17.02.2016, 13:11 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
using System;
using System.Linq;
 
internal sealed class Program {
  static void Main() {
    String s = @"а роза упала на лапу азора";
    s.Split(new Char[] {(Char)32}, StringSplitOptions.RemoveEmptyEntries)
    .ToList().ForEach(w => {
      Console.Write("{0} ", new String(w.ToCharArray().Distinct().ToArray()));
    });
  }
}
0
Сергей Мойся
1 / 1 / 3
Регистрация: 13.05.2013
Сообщений: 24
17.02.2016, 13:28 4
Лучший ответ Сообщение было отмечено jerom1234 как решение

Решение

Ну или так
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
 
internal class Program
{
    private static void Main()
    {
        string word1 = "а роза упала на лапу азора";
        string[] words = word1.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
        List<string> newWordsList = new List<string>();
        
        words.ToList().ForEach(str =>
        {
            string tempWord = "";
            str.ToList().ForEach(letter =>
            {
                if (!tempWord.Contains(letter))
                    tempWord += letter;
            });
            newWordsList.Add(tempWord);
        });
 
        Console.WriteLine(String.Join(" ", newWordsList.ToArray()));
        Console.ReadKey();
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2016, 13:28

Удалить все повторяющиеся элементы массива
1) Удалить все повторяющиеся элементы массива, оставив только их первые...

Удалить повторяющиеся слова из строки
Строку вводим в TextBox. В этой строке нужно все одинаковые слова следующие...

Удалить повторяющиеся символы из строки
Здравствуйте, подскажите как можно удалить все повторяющиеся символы из строки?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru