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

Zczytawanie liczb z Stringa

VPS Starter Arubacloud
+1 głos
300 wizyt
pytanie zadane 14 kwietnia 2015 w Java przez Jaskrowicz Obywatel (1,210 p.)
edycja 14 kwietnia 2015 przez Jaskrowicz

Dostaje z góry ustaloego Stringa np

String mojString="2 -3 40 56 33 18 5382 2";

I chcę uzyskać z niego wszystkie liczby w postaci int. Czyli na przykład mieć je w tablicy.

int[] mojeLiczby = {2, -3, 40, 56, 33, 18, 5382, 2 };

Na razie wypociłem coś takiego, ale wydaje mi się że jest to wysoko nieefektywne raz, a dwa mam problem z zczytywaniem liczb większych niż 10 frown.

        int[] tab = new int[N];
        int[] tabBezMinusow = new int[N];
        char[] charTab = new char[TEMPS.length()];
        
        boolean minus = false;
		charTab = TEMPS.toCharArray();
		int i = 0;
		for(int j=0; j<TEMPS.length(); j++)
			
			if( !(Character.isWhitespace(charTab[j]))){
				try{
						if(minus == false){
							tabBezMinusow[i] = tab[i] = Integer.parseInt(String.valueOf(charTab[j]));
							i++;
						}else{
							minus = false;
							tab[i] = (Integer.parseInt(String.valueOf(charTab[j])))*(-1);
							tabBezMinusow[i] = Integer.parseInt(String.valueOf(charTab[j]));
							i++;
					}
					}catch(Exception e){
						minus = true;
					}
				
			}

Powyżej w skrócie: TEMPS to moj String. Przerzucam go do tablicy z charów(6), z którego następnie zczytuje liczby(13) omijajac biale znaki(10), a minus obsluguje wyjatkiem(21). Reszta nie jest istotna dla was cheeky.

Będe wdzięczny za jakieś wskazówki wink.

2 odpowiedzi

+1 głos
odpowiedź 15 kwietnia 2015 przez bossik21 Mądrala (5,750 p.)
wybrane 15 kwietnia 2015 przez Jaskrowicz
 
Najlepsza

Używając metody split na stringu, mozesz podzielic go(w przypadku poniżej po spacjach) po różnych frazach, typu spacje, czy też jakieś różne znaki, co tylko chcesz

Potem jak też zaprezentowałem w kodzie, mozesz zastosować proste parsowanie stringa na inta

 




public class Main {
    public static void main(String[] args) {

    	String napis = "1 -10 166 1023 12 -20";
    	String[] tab = napis.split("\\s+");
    	for ( String i: tab)
    	{
    		System.out.println(i);
    	}
    	//Konwersja Stringa -> Int
    	int liczba = Integer.parseInt(tab[0]);
        System.out.println("Liczba to " + liczba);
    }

 

Wyjscie :

1
-10
166
1023
12
-20
Liczba to 1

 

–1 głos
odpowiedź 15 kwietnia 2015 przez Boshi VIP (100,240 p.)
Nie pamiętam jak w c ++, ale czy czasem rzutowanie stringa na inta nie daje inta? oczywiście jak nie przepełnisz typu ?
W php przynajmniej tak to działa- automatyczna konwersja i nie tylko w php.

coś takiego;

 string liczba="4";

int liczba1=(int)liczba;

sprawdź, jeżeli nie to jutro może coś wymyślę jak wrócę  do domu.

Podobne pytania

0 głosów
2 odpowiedzi 134 wizyt
pytanie zadane 13 marca 2023 w Java przez elvis Nowicjusz (210 p.)
0 głosów
0 odpowiedzi 89 wizyt
pytanie zadane 24 stycznia 2020 w Java przez fipooo Bywalec (2,880 p.)
0 głosów
1 odpowiedź 1,785 wizyt
pytanie zadane 13 grudnia 2017 w Java przez victordeleco2 Użytkownik (920 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...