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

Zamiana liczby w postaci stringa na zmienna typu int

Object Storage Arubacloud
0 głosów
134 wizyt
pytanie zadane 8 maja 2020 w Java przez jasper93 Obywatel (1,310 p.)
Witam, ostatnio przerabiam metody z użyciem Stringa. Wszystko szło ok do czasu, gdy napotkałem takie zadanie:

https://ibb.co/8PvYpkJ
Wyciągniecie samej liczby nie jest problemem, ale gorzej już takimi znakami jak +,-,*. Nie znam innych kolekcji poza tablicami, po proszę o podpowiedź jak podejść do tego tematu?

3 odpowiedzi

0 głosów
odpowiedź 9 maja 2020 przez Czarus Obywatel (1,310 p.)

W c++ wiem jak to zrobić lecz na javie sie nie znam i może mogę choć trochę pomóc od strony teorii. Otóż np znak + w ASCII to 43 a - to 45 (na google zobacz tablicę ASCII), są one zapisane jako cyfry. Trzeba posłużyć się rzutowaniem, w C++ wystarczy napisać w nawiasie zmienną na którą chcesz rzutować 

zmienna_int = (int) zmienna _string

wtedy w zimienna_int będzie wartość ascii dla danego znaku i wystarczy rzutować zmienną int na char który pokaże ten znak

cout << (char) zmianna_int;

ale jak mówiłem to w C++ nie wiem jaka jest zasada działania na javie (mam nadzieje że taka sama)

Mam nadzieję że jakkolwiek pomogłemsmiley, dobrej nocy życzę 

komentarz 11 maja 2020 przez adrian17 Ekspert (344,860 p.)

zmienna_int = (int) zmienna _string

To... nie ma sensu w C++ie i w ogóle się nie skompiluje.

0 głosów
odpowiedź 11 maja 2020 przez mibdbz Gaduła (4,300 p.)
Spróbuj użyć backslash przed znakiem. Np.

"\*" albo "\\"

Backslash w stringu oznacza to, że następny znak jaki nastąpi bezpośrednio po nim będzie specjalny. Czy jakoś tak. Używa się tego do znaku następnej Lini \n czy znaku apostrofu \" albo innego backslasha \\. Spróbuj, może zadziała.
0 głosów
odpowiedź 11 maja 2020 przez adrian17 Ekspert (344,860 p.)

Rozwiązanie mocno zależy od tego, czego nauczyciel oczekuje, ale...

ale gorzej już takimi znakami jak +,-,*.

To właśnie nie jest problem - zadanie mówi, żeby je zignorować, bo nie są częścią zapisu liczby (poza -/+ na początku). Więc "123+4" i "123XX" dadzą ten sam wynik - 123.

Moja ("na sucho") propozycja: użyć zwykłej Javowej metody parsującej inta, tylko wywoływać ją po kolei na coraz krótszych kawałkach stringa, aż się uda. To znaczy "123XX" (nieudane), "123X" (nieudane), "123" (udane parsowanie, daje 123). Może nie super wydajne, ale brzmi prosto w realizacji.

Podobne pytania

0 głosów
3 odpowiedzi 165 wizyt
pytanie zadane 26 lipca 2016 w C i C++ przez hakiros54 Obywatel (1,160 p.)
0 głosów
1 odpowiedź 733 wizyt
pytanie zadane 5 maja 2020 w C i C++ przez pseudoinformatyczka Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 358 wizyt

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,940 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!

...