C# :: Aufgabe #295
4 Lösungen

Namen in Initialen umwandeln
Anfänger - C#
von JKooP
- 29.03.2020 um 15:07 Uhr
Schreibe ein Programm, mit dem es möglich ist, einen beliebig langen Namen (Vorname(n), Nachname(n), Namenszusätze) als Initialen darzustellen.
Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden.
Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen.
Beispiel:
Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg
--> KTMNJJPFJSBFvuzG
Optional:
--> K-TMNJJPFJSB-FvuzG
--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG
Viel Spaß
Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden.
Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen.
Beispiel:
Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg
--> KTMNJJPFJSBFvuzG
Optional:
--> K-TMNJJPFJSB-FvuzG
--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG
Viel Spaß
Lösungen:
Hier die Lösung die nur auf Leerzeichen kontrolliert.
C#-Code

using System; namespace NamenInitialien { class Program { static void Main(string[] args) { //OHNE BINDESTRICH Console.WriteLine("Hallo, hier werden alle eingegebenen Wörter nur auf die Initialien gekürzt!"); Console.WriteLine("Die Wörter müssen mit Leerzeichen getrennt sein! \n"); Console.WriteLine("Geben Sie die gewünschten Wörter ein! \n"); String Eingabe = Console.ReadLine(); //Lese die Eingabe String[] Leerzeichen = Eingabe.Split(' '); //Trenne den Eingabestring bei Leerzeichen Console.Write("Initialien: \n"); foreach (string wort in Leerzeichen) //Für jedes Wort in Leerzeichen { Console.Write("{0}", wort[0]); //Gib nur das erste Zeichen des Wortes aus } Console.ReadKey(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Inizialen_erstellen { class Program { static void Main(string[] args) { Console.WriteLine("Gebe deinen Vollständigen Namen ein:"); string eingabe = Console.ReadLine(); string[] namen = eingabe.Split('-', ' '); Console.WriteLine("\nDeine Inizialen sind:\n"); foreach(var ersterBuchstabe in namen) { Console.Write(ersterBuchstabe.First()); } Console.ReadKey(); } } }
NET Core 3.x
C#-Code

using System; using System.Text.RegularExpressions; namespace CS_Aufgabe_295_Initialen { class Program { static void Main(string[] args) { const string Name = "Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg"; Console.WriteLine(GetInitials(Name, true, true)); } static string GetInitials(string name, bool toupper = false, bool hyphen = false) { var pat = @"[A-Z]|\b[a-z]{1}"; var patH = @"[A-Z\-]|\b[a-z]{1}"; var s = string.Join("", new Regex(hyphen ? patH : pat).Matches(name)); if (toupper) s = s.ToUpper(); return s; } } }
NET 5.x; C# 9.x
Erweiterungsmethode für Standardausgabe:
C#-Code
Erweiterungsmethode für Standardausgabe:

using System; using System.Text.RegularExpressions; static class Program { static void Main() { var name = "Karl - Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl - Freiherr von und zu Guttenberg"; Console.WriteLine(name.Initialen()); } static string Initialen(this string s) => string.Join("", new Regex(@"[A-Z]|\b[a-z]").Matches(s)); }