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

93,030 zapytań

141,992 odpowiedzi

321,294 komentarzy

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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...