C# :: Aufgabe #295

4 Lösungen Lösungen öffentlich

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ß

Lösungen:

vote_ok
von vinceee (180 Punkte) - 30.03.2020 um 21:08 Uhr
Hier die Lösung die nur auf Leerzeichen kontrolliert.

Quellcode ausblenden 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();
        }
    }
}
vote_ok
von Spooner (340 Punkte) - 19.04.2020 um 21:49 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
}
vote_ok
von JKooP (18090 Punkte) - 03.07.2020 um 09:29 Uhr
NET Core 3.x

Quellcode ausblenden 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;
        }
    }
}
vote_ok
von JKooP (18090 Punkte) - 23.01.2021 um 15:46 Uhr
NET 5.x; C# 9.x
Erweiterungsmethode für Standardausgabe:
Quellcode ausblenden C#-Code
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));
}