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

Zczytawanie liczb z Stringa

Cloud VPS
+1 głos
370 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 299 wizyt
pytanie zadane 13 marca 2023 w Java przez elvis Nowicjusz (210 p.)
0 głosów
0 odpowiedzi 116 wizyt
pytanie zadane 24 stycznia 2020 w Java przez fipooo Bywalec (2,880 p.)
0 głosów
1 odpowiedź 1,968 wizyt
pytanie zadane 13 grudnia 2017 w Java przez victordeleco2 Użytkownik (920 p.)

93,482 zapytań

142,415 odpowiedzi

322,761 komentarzy

62,895 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

Kursy INF.02 i INF.03
...