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 13041 12.03.2018, 12:51
Ostatni post: Szachista
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 15982 13.02.2018, 21:25
Ostatni post: Pioro
  Wyszukuje wszystkie dzielniki danej liczby n które są liczbami pierwszymi soul1648 2 9369 21.03.2017, 20:55
Ostatni post: soul1648

Skocz do: