Dobry wieczór, mam do napisania program który dla podanego przez użytkownika napisu sprawdzi czy jest on liczbą. Liczba może być niecałkowita (uwzględnij kropkę jako separator).
Program prawie skończony jedynie nie mogę rozgryźć jak program może pominąć kropkę przy sprawdzaniu napisu metodą IsDigit. Słyszałem, że IsDigit działa jak wpisze się przecinek zamiast kropki więc próbowałem coś takiego napisać. A dokładnie mówiąc kawałek kodu, który po znalezieniu kropki w napisie zamieni ją na przecinek. Jednak nie działa mi to tak, jak powinno.
Tutaj program, który dotychczas napisałem:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Zadanie_9
{
class Program
{
static void Main(string[] args)
{
/* -------------------------------------------------------------------------------------------------------------------------------------------------------
Napisz program, który dla podanego przez użytkownika napisu sprawdzi czy jest on liczbą. Liczba może być niecałkowita (uwzględnij kropkę jako separator)
------------------------------------------------------------------------------------------------------------------------------------------------------- */
Console.WriteLine("Podaj dowolny napis:");
string inscription = Console.ReadLine();
for (int i = 0; i < inscription.Length; i++)
{
//Sprawdzenie czy podany napis jest liczbą dziesiętną i nie posiada kropki.
if (char.IsDigit(inscription, i) && !inscription.Contains("."))
{
if (i == (inscription.Length - 1))
Console.WriteLine("To jest liczba.");
}
//Sprawdzenie czy podany napis zawiera kropkę. Jeśli tak zamienia ją z przecinkiem.
else if (inscription.Contains("."))
{
inscription.Replace(".", ",");
}
//Sprawdzenie czy podany napis jest liczbą dziesiętną i posiada kropkę.
else if (char.IsDigit(inscription, i) && inscription.Contains(".")) //Problem z sprawdzeniem . w IsDigit.
{
if (i == (inscription.Length - 1))
Console.WriteLine("To jest liczba.");
}
else
{
//Wyświetlenie komunikatu i zakończenie działa pętli poprzez instrukcję sterującą break.
Console.WriteLine("To nie jest liczba.");
break;
}
}
//Program oczekuje na wciśnięcie dowolnego klawisza na klawiaturze.
Console.WriteLine("\n" +"Wciśnij dowolny klawisz, aby zakończyć program.");
Console.ReadKey();
}
}
}
Język C# zacząłem dopiero się uczyć (napisałem raptem kilka prostych programów) więc proszę o wyrozumiałość.
Szybkie i trafne odpowiedzi bardzo mile widziane :)