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 7903 12.03.2018, 12:51
Ostatni post: Szachista
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 9145 13.02.2018, 21:25
Ostatni post: Pioro
  Wyszukuje wszystkie dzielniki danej liczby n które są liczbami pierwszymi soul1648 2 5749 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
  [VBA] Przenoszenie danych między formularzami Pioro 4 7871 23.04.2018 11:48
Ostatni post: broda99
  Skrypt, który szuka i zamienia armen10 2 7695 23.04.2018 10:04
Ostatni post: armen10
  Liniowa regresja w Pythonie a budowanie modelu Trojan3000 2 7823 16.04.2018 13:26
Ostatni post: Trojan3000
  Początki z bashem - jak napisać skrypty: wysłanie maila i kalkulator? Kristov81 4 11620 21.03.2018 18:32
Ostatni post: Szachista
Ściana Zadanie cmd.... Yanke$ 2 8818 16.03.2018 17:20
Ostatni post: FireBytes
  Poszukuj kogoś do pomocy FireBytes 0 7689 16.03.2018 16:58
Ostatni post: FireBytes
  Program liczący liczby pierwsze Mersenne'a raistin 2 7903 12.03.2018 12:51
Ostatni post: Szachista
  Wykres Funkcji w Javie wanhelsing 4 8723 17.02.2018 22:27
Ostatni post: wanhelsing
  [SQL]procedura zliczania czasu CTRL85 0 7985 17.02.2018 12:58
Ostatni post: CTRL85
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 9145 13.02.2018 21:25
Ostatni post: Pioro
  Sumowanie czasu excel. Cixi 7 8458 13.02.2018 11:52
Ostatni post: Cixi
  Sap i power bi książki Cixi 1 8310 09.02.2018 21:46
Ostatni post: Cixi
  Pomoc w VBA excel Woof 3 8804 19.01.2018 09:36
Ostatni post: Woof
Ściana [CMD] Dwa zadanka które mnie przerosły MihuJ 0 8093 11.01.2018 15:52
Ostatni post: MihuJ
  Czy programowanie jest dla mnie? Co powinienem robić? Kumiku 2 8473 05.01.2018 20:14
Ostatni post: broda99