C# :: Aufgabe #376
2 Lösungen
Unikat- Liste aus zwei Zeichenketten/Sätzen
Anfänger - C#
von JKooP
- 02.04.2021 um 18:13 Uhr
Gegeben sind zwei Zeichenketten (a, b) bestehend aus Kleinbuchstaben und Leerzeichen.
Es sollen die Wörter in ein neues String- Array überführt werden,
die genau einmal in beiden Zeichenketten vorkommen (Unikate).
Beispiel 1:
a = „der pfannkuchen schmeckt süß“
b = „der pfannkuchen schmeckt salzig“
Lösung: { „süß“, „salzig“ }
Beispiel 2:
a = „apfel apfel“
b = „banane“
Lösung: { „banane“ }
Beispiel 3:
a = „der pfannkuchen schmeckt“
b = „der pfannkuchen schmeckt“
Lösung: { }
Erstelle eine Methode/Funktion, die solch ein String- Array zurückgibt.
Viel Spaß
Es sollen die Wörter in ein neues String- Array überführt werden,
die genau einmal in beiden Zeichenketten vorkommen (Unikate).
Beispiel 1:
a = „der pfannkuchen schmeckt süß“
b = „der pfannkuchen schmeckt salzig“
Lösung: { „süß“, „salzig“ }
Beispiel 2:
a = „apfel apfel“
b = „banane“
Lösung: { „banane“ }
Beispiel 3:
a = „der pfannkuchen schmeckt“
b = „der pfannkuchen schmeckt“
Lösung: { }
Erstelle eine Methode/Funktion, die solch ein String- Array zurückgibt.
Viel Spaß
Lösungen:
NET 5.x; C# 9.x; VS-2019
C#-Code
using System; using System.Collections.Generic; using System.Linq; var lst = new List<(string a, string b)> { ("der pfannkuchen schmeckt süß", "der pfannkuchen schmeckt salzig"), ("apfel apfel", "banane"), ("der pfannkuchen schmeckt", "der pfannkuchen schmeckt") }; lst.ForEach(x => Console.WriteLine(string.Join(", ", UniqueWords(x.a, x.b)))); static string[] UniqueWords(string a, string b) => a.Split(" ").Concat(b.Split(" ")).GroupBy(x => x).Where(x => x.Count() == 1).Select(x => new string(x.Key)).ToArray();
C#-Code
using System; namespace satz_wort_unterscheidung { class Program { static void Main(string[] args) { string a = "der pfannkuchen schmeckt"; string b = "der pfannkuchen schmeckt"; int hauefigkeit = 0; string[] satz1 = a.Split(' '); string[] satz2 = b.Split(' '); foreach (var item in satz1) { if (!b.Contains(item)) { foreach (var item1 in satz1) { if (item == item1) { hauefigkeit++; } } if (hauefigkeit == 1) { Console.WriteLine(item); hauefigkeit = 0; } else { hauefigkeit = 0; } } } foreach (var item in satz2) { if (!a.Contains(item)) { foreach (var item1 in satz2) { if (item == item1) { hauefigkeit++; } } if (hauefigkeit == 1) { Console.WriteLine(item); hauefigkeit = 0; } else { hauefigkeit = 0; } } } } } }