Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Konwertowanie słów na liczby Java

#1
Konwertowanie słów na liczby Java
Kod:
import java.util.Scanner;

public class Sierp {
public static void main(String[] args){
int wiek;
System.out.println("Podaj swój wiek");
Scanner odczyt_wiek = new Scanner(System.in);
wiek = Integer.parseInt(odczyt_wiek.nextLine());

System.out.println("Twój wiek to " + wiek);
}
}

Podany kod pyta o wiek a następnie go wypisuje, mam pytanie jak zrobić by podany kod działał niezależnie od tego czy użytkownik wpiszę liczbę czy napisze słownie np. wpisując 4 wyskoczy wiek 4 lecz wpisują cztery wyskoczy błąd, czy trzeba zrobić to za pomocą parseInt czy valueOf nie mam pojęcia, a wszelkie prób kończą się błędami, ktoś coś wiek jak to przerobić?
 System operacyjny: windows_eight Przeglądarka: chrome
#2
RE: Konwertowanie słów na liczby Java
Na przyszłość proszę umieszczać kod w znacznikach
Kod PHP:
[code][/code
Trzeba obsłużyć wyjątek, który może zostać rzucony przy próbie konwersji napisu na liczbę:
Kod:
import java.util.Scanner;

public class Sierp {
    public static void main(String[] args) {
        int wiek;
        System.out.println("Podaj swój wiek");
        Scanner odczyt_wiek = new Scanner(System.in);
        try {
            wiek = Integer.parseInt(odczyt_wiek.nextLine());

            System.out.println("Twój wiek to " + wiek);
        } catch (NumberFormatException e) {
            System.out.println("Podano niepoprawną liczbę");
        }
    }
}
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: Konwertowanie słów na liczby Java
Niby spoko, tyle, że dalej wpisując dwa wyskakuje niepoprawna liczba, a chcę by po wpisaniu słowa dwa program wypisał twój wiek to 2 zamieniając słowo dwa na liczbę.
 System operacyjny: windows_eight Przeglądarka: chrome
#4
RE: Konwertowanie słów na liczby Java
No to nie będzie takie proste. Komputer nie wie, że słowo "dwa" oznacza to samo, co cyfra "2". Musisz zrobić tablice słów od "jeden do "dziewiętnaście", kolejną od "dwadzieścia" do "dziewięćdziesiąt" ale same dziesiątki i w kodzie analizować, ile jest słów, jeśli jedno, to podać odpowiedni indeks, a jeśli dwa, to podać oba indeksy i je ssumować. Tak ja bym to zrobił
Pozdrawiam.
Ajgor
 System operacyjny: windows_ten Przeglądarka: chrome
#5
RE: Konwertowanie słów na liczby Java
Kod:
import java.util.Scanner;

    public class Sierp {
        public static void main(String[] args) {
            String wiek;
            System.out.println("Podaj swój wiek");
            Scanner odczyt_wiek = new Scanner(System.in);
            try {
                wiek = odczyt_wiek.nextLine();
                System.out.println("Twój wiek to: " + wiek);
            }
        catch (NumberFormatException e) {
                System.out.println("Podano niepoprawną liczbę");
            }


                }
}
Mam coś takiego, tylko czy np instrukcją switch case bądz if dało by radę obsłużyć coś w stylu if(wiek==1) to wydrukuj "jeden" lub if(wiek==jeden) to wydrukuj "1", z tym , że zmienna wiek jest jako string jak dam to pierwsze wyskoczy bład.
 System operacyjny: windows_eight Przeglądarka: chrome
#6
RE: Konwertowanie słów na liczby Java
Ajgor podsunął Ci pomysł, jak to można zrealizować. Możesz sobie utworzyć słownik, gdzie liczbę odwzorujesz w słowo (potem możesz odwzorować napis w liczbę), np.
Kod:
import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;

public class nic {
    public static void main(String[] args) {
        int wiek;
        Map<Integer, String> slowa = new HashMap<>();
        slowa.put(1, "jeden");
        slowa.put(2, "dwa");
        // ...
        slowa.put(19, "dziewiętnaście");
        slowa.put(20, "dwadzieścia");
        slowa.put(30, "trzydzieści");
        //...
        slowa.put(90, "dziewięćdziesiąt");
        for (int i = 1; i < 10; i++)
            for (int j = 20; j < 100; j += 10)
                slowa.put(i+j, slowa.get(j) + " " + slowa.get(i));
        System.out.println("Podaj swój wiek");
        Scanner odczyt_wiek = new Scanner(System.in);
        String napis = odczyt_wiek.nextLine();
        try {
            if (slowa.containsValue(napis))
                System.out.println("Twój wiek to lat: " + napis);
            else {
                wiek = Integer.parseInt(napis);
                System.out.println("Twój wiek to " + wiek);
            }
        } catch (NumberFormatException e) {
            System.out.println("Podano niepoprawną liczbę");
        }
    }
}
 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (Konwertowanie słów na liczby Java)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Program liczący liczby pierwsze Mersenne'a raistin 2 9575 12.03.2018, 12:51
Ostatni post: Szachista
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 10641 13.02.2018, 21:25
Ostatni post: Pioro
  Wyszukuje wszystkie dzielniki danej liczby n które są liczbami pierwszymi soul1648 2 6313 21.03.2017, 20:55
Ostatni post: soul1648

Skocz do:


Wybrane wątki (Konwertowanie słów na liczby Java)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 6789 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 9691 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 7385 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 8084 06.10.2018 12:22
Ostatni post: NissmoOne
  C# pierwsza pusta komórka Excel DonCorleone 0 7490 21.09.2018 16:58
Ostatni post: DonCorleone
  .bat nie kompresuje plików GIENTY 3 7873 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 8991 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 7740 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 8454 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2354 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 9111 28.06.2018 16:56
Ostatni post: FireBytes
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 9393 19.06.2018 23:24
Ostatni post: broda99
  Potwierdzenie na maila po wysłaniu pliku coci 0 8575 13.06.2018 20:37
Ostatni post: coci
  Pieczętowanie Archiwum Jar - Po co? wanhelsing 3 9185 19.05.2018 20:55
Ostatni post: koneton
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 8963 16.05.2018 12:04
Ostatni post: kazik666