• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java rzutowanie String na int

Object Storage Arubacloud
0 głosów
12,470 wizyt
pytanie zadane 9 stycznia 2016 w Java przez Int_main Bywalec (2,850 p.)
Witam.
Potrzebuję przykładowej funkcji (w Javie) sprawdzającej czy podany String jest liczbą, jeśli jest wykonuje konwersję na int i zwraca liczbę.
Z góry dzięki.
1
komentarz 12 listopada 2017 przez Riddick Bywalec (2,600 p.)
Jaśnie wielmożni panowie programiści oburzają się, że ktoś wstawia łatwe pytanie a jak ja wstawiałem prawdziwe problemy z kodem na kilka tysięcy linii to aby eee i szybciej (czyt. w dwa dni) sam wymyśliłem rozwiązanie. Raz się zdarzyło, że ktoś mi podsunął pewien pomysł, który już sam dostosowałem do swoich potrzeb. Takie pytania są potrzebne bo szybciej jest wyszukać jedną rzecz na forum z czego sam teraz skorzystałem niż szukać dobrze napisanego kursu a kursów javy dobrze napisanych praktycznie nie ma. Bo sama java zresztą nie jest dobrze skonstruowana ale niestety niezbędna. Założę się, że ludzie, którzy pododawali minusy tutaj sami niewiele wiedzą i nie mają nawet doświadczenia z większymi projektami i większymi problemami bo ktoś z większą wiedzą na pewno nie byłby taki arogancki.

3 odpowiedzi

+2 głosów
odpowiedź 9 stycznia 2016 przez Int_main Bywalec (2,850 p.)

Zdążyłem już to ogarnąć, choć zrobiłem to nieco inaczej.
 

public static boolean isInteger(String s){
		try{
			Integer.parseInt(s);
		} catch(NumberFormatException e) {
			return false;
		} catch(NullPointerException e) {
			return false;
		}
		return true;
	}

public static void podajLiczbe(){
		
		System.out.print("Podaj liczbę: ");
		
		String n_str;
		int n_int;
		Scanner in = new Scanner(System.in);
		n_str = in.nextLine();
		
		if(isInteger(n_str) == false){
			while(isInteger(n_str) != true){
				System.out.println("Podana przez Ciebie łańcuch nie jest liczbą. Podałeś: " + n_str);
				System.out.print("Podaj liczbę: ");
				n_str = in.nextLine();
				if(isInteger(n_str) == true){
					n_int = Integer.parseInt(n_str);
					System.out.println("Podałeś: " + n_int);
				}
			}
		} 
		else{
			n_int = Integer.parseInt(n_str);
			System.out.println("Podana liczba to: " + n_int);
		}
		
	}

Swoją drogą nie rozumiem skąd tyle minusów, bo ludzie potrafią powielać temat typu "java czy c++" itp podobne bzdury i wszystko przebiega bez minusów, a ja po prostu chciałem poznać metodę z rzutowaniem (o ile taka istnieje), a nie samo wykorzystanie obsługi wyjątków, no ale okej. Niby w niczym nie szkodzą mi te minusy, ale zastanawiam się skąd takie oburzenie. :D

komentarz 9 stycznia 2016 przez Javowiec Pasjonat (21,560 p.)
Może dlatego, że zamiast wykazać minimalną inicjatywę pytasz o totalne podstawy, które wytłumaczone są bardzo dobrze w wielu poradnikach/książkach (nawet tych polskich).
komentarz 9 stycznia 2016 przez Int_main Bywalec (2,850 p.)
W takim razie wskaż mi konkretne źródło, gdzie będzie przykład jak rzutować tablicę char/string na int w pętli. Bo tak bym to zrobił w C++, ale widzę, że taka metoda nie działa, więc zamiast wrzucać kod z błędami pytam wprost.
Poza tym wydaje mi się, że ta istrukcja try...catch z obsługą wyjątku to nie jest taka totalna podstawa.
komentarz 9 stycznia 2016 przez Javowiec Pasjonat (21,560 p.)
To przerób jakikolwiek kurs Javy, zamiast chodzić po omacku. Obsługa błędów to też podstawy i w każdym kursie jest to omówione.
komentarz 20 marca 2021 przez Andrzej Szumowski Nowicjusz (100 p.)

@Int_main,

Masz okropny nawyk pisania w stylu: Jeśli prawda jest prawdą to zrób coś tam... a jeśli prawda nie jest prawdą... Bosz... toż to czysta tautologia.
Prawda jest prawdziwa od razu, nie trzeba jej sprawdzać, więc zamiast:

if(isInteger(n_str) == true){

wystarczy:

if(isInteger(n_str)){

a jeśli coś ma się wykonać gdy warunek jest fałszywy dodajesz po prostu ! przed

if (!warunek)

Prawda nie będzie bardziej prawdziwa jak zrobisz true == true, ona już jest true.

Mam nadzieję, że w ciągu tych 5 lat wyzbyłeś się tego brzydkiego nawyku ;-)

Pozdrawiam.
 

+1 głos
odpowiedź 9 stycznia 2016 przez Moonshine Mądrala (6,360 p.)
Odsyłam tutaj, i zapoznaj się z różnicą między int a Integer,

http://stackoverflow.com/questions/5585779/converting-string-to-int-in-java
komentarz 9 stycznia 2016 przez niezalogowany
właśnie podałem pierwszy przykład z top komentu :D #timing
komentarz 9 stycznia 2016 przez Moonshine Mądrala (6,360 p.)
A no widzę widzę, spóźniłem się jakieś 25 sekund :D
komentarz 9 stycznia 2016 przez Int_main Bywalec (2,850 p.)
Czy chodzi Ci o to, że int to typ zmiennej, a Integer to obiekt?
Jeśli tak, to jak to wykorzystać w powyższym problemie?
0 głosów
odpowiedź 9 stycznia 2016 przez niezalogowany
int foo = Integer.parseInt("1234");

 

komentarz 9 stycznia 2016 przez Int_main Bywalec (2,850 p.)
edycja 9 stycznia 2016 przez Int_main
zastanawiam się czy nie przeczytałeś dokładnie pytania czy po prostu jesteś złośliwy.
2/10
komentarz 9 stycznia 2016 przez niezalogowany
odpowiedziałem na połowę pytania :)
komentarz 9 stycznia 2016 przez Int_main Bywalec (2,850 p.)
dobra, wybacz. przyznaję - poniosło mnie. to wszystko przez te minusy :D
komentarz 9 stycznia 2016 przez Sedi Stary wyjadacz (10,200 p.)
Int_main nie ma sensu przejmować się opinią innych :) - Zauważ, że najlepiej Ci wszystko wychodzi, gdy robisz to, ale jednocześnie nie boisz się tego co inni powiedzą/pomyślą :)

Innymi słowymi, minusy są jak opinie, prawie zawsze będą :)

Podobne pytania

+2 głosów
2 odpowiedzi 1,487 wizyt
pytanie zadane 10 sierpnia 2016 w Java przez itcloud Gaduła (3,380 p.)
0 głosów
1 odpowiedź 370 wizyt
pytanie zadane 16 sierpnia 2016 w C i C++ przez Zeroche Obywatel (1,030 p.)
0 głosów
2 odpowiedzi 957 wizyt
pytanie zadane 18 sierpnia 2017 w C i C++ przez itzluar Nowicjusz (220 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...