Професионална програма
Loading...
+ Нов въпрос
msmner avatar msmner 38 Точки

Здравей! 
Ето едно решение: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Extract_Person_Information
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                string input = Console.ReadLine();
                int indexOfNameStart = input.IndexOf('@');
                int indexOfNameEnd = input.IndexOf('|');
                string name = input.Substring(indexOfNameStart+1, indexOfNameEnd - indexOfNameStart-1);
                int indexOfAgeStart = input.IndexOf('#');
                int indexOfAgeEnd = input.IndexOf('*');
                string ageStr = input.Substring(indexOfAgeStart + 1, indexOfAgeEnd - indexOfAgeStart-1);
                Console.WriteLine($"{name} is {ageStr} years old.");
            }
        }
    }
}

1
kr.vandeva avatar kr.vandeva 0 Точки

Благодаря. Логиката ми гърми при вход abc@George|. С IndexOf е лесно, кратко и бързо :)

0
arnold avatar arnold 36 Точки

Много удобно се решава тази задача с регекс:

 

using System;
using System.Text.RegularExpressions;

namespace ExtractPersonInformation_MoreEx
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                string text = Console.ReadLine();

                string namePattern = @"@(?<name>[A-Za-z]+)\|";
                string agePattern = @"#(?<age>[0-9]+)\*";

                Match name = Regex.Match(text, namePattern);
                Match age = Regex.Match(text, agePattern);

                Console.WriteLine($"{name.Groups["name"]} is {age.Groups["age"]} years old.");
            }
        }
    }
}
 

0
VasilKos avatar VasilKos 7 Точки

Здравейте, къде бъркам в решението на JAVA  с Regex? Разгледах решението с substring, и то ми е ясно. Но къде бъркам тук?

ExtractPersonInformation - Pastebin.com

Пове4е ме интересува грешката в логиката, отколкото 100/100.

0
19/11/2021 10:44:39
VasilKos avatar VasilKos 7 Точки

Намерих си грешката: 

String age = matcherAge.group("age");  (не - String age = matcherName.group)

 

 
0