JavaRush /Blog Java /Random-PL /Pytanie i odpowiedź: Jak poprawnie przekonwertować ciąg n...

Pytanie i odpowiedź: Jak poprawnie przekonwertować ciąg na int w Javie?

Opublikowano w grupie Random-PL
Przybliżony poziom wymaganej wiedzy: misja Java Syntax i trochę Java Core.
Pytanie i odpowiedź: Jak poprawnie przekonwertować ciąg na int w Javie?  - 1
Pod koniec pierwszego zadania JavaRush dowiadujemy się o konwersji typów. Na wykładach na poziomie 10 można było zobaczyć, że konwersja intna Stringjest bardzo prosta i ogólnie rzecz biorąc, prawie każdy typ pierwotny może zostać przekonwertowany Stringbez problemów.
int x = 5;
String text = "X=" + x;
Ponadto ci, którzy ukończyli już 10 poziom zadania Java Syntax, wiedzą, że nie da się przekonwertować odniesienia do liczby na odwołanie do ciągu znaków. Jaki jest zatem najlepszy sposób na konwersję ciągu znaków na pierwotną liczbę całkowitą? Lepiej to zrobić metodą parseIntklasową Integer. Metoda parseIntmusi zostać przekonwertowana Stringna typ inti zgłasza wyjątek NumberFormatException, jeśli nie można przekonwertować ciągu na typ int.

Przykład

Podstawowa linia konwertująca ciąg znaków na liczbę całkowitą:
int i = Integer.parseInt (myString);
Jeśli ciąg znaków oznaczony przez zmienną myStringjest prawidłową liczbą całkowitą, np. „1”, „200”, Java po cichu przekonwertuje ją na pierwotny typ danych int. Jeśli z jakiegoś powodu to się nie powiedzie, taka akcja może zgłosić wyjątek NumberFormatException, dlatego aby program działał poprawnie dla dowolnego ciągu znaków, potrzebujemy trochę więcej kodu. Program demonstrujący sposób konwersji Java Stringna int, sterowanie możliwymi NumberFormatException:
public class JavaStringToIntExample
{
  public static void main (String[] args)
  {
    // String s = "fred"; // użyj tego, jeśli chcesz przetestować //wyjątek poniżej
String s = "100";

    try
    {
      // w tym miejscu String jest konwertowany na int
      int i = Integer.parseInt(s.trim());

      // wyświetl wartość po konwersji
      System.out.println("int i = " + i);
    }
    catch (NumberFormatException nfe)
    {
      System.out.println("NumberFormatException: " + nfe.getMessage());
    }
  }

Dyskusja

Kiedy przestudiujesz powyższy przykład, zobaczysz, że metoda Integer.parseInt (s.trim ())służy do zamiany ciągu znaków sna liczbę całkowitą i, a dzieje się to w następującym wierszu kodu:
int i = Integer.parseInt (s.trim ())
Ale czasami konwersja ciągu na liczbę po prostu nie zadziała. W naszym przykładzie takim ciągiem jest imię fred. Możemy mówić o kodach, w których litery są zapisywane na komputerze, ale formalnie rzecz biorąc, fred nie jest liczbą i lepiej zostawić go w postaci ciągu znaków. Nasz program został zaprojektowany w taki sposób, że jeśli spróbujesz przekonwertować „fred” na liczbę, proces Integer parseIntzgłosi wyjątek NumberFormatException, który musisz obsłużyć w bloku try / catch. W tym przypadku nie musisz używać metody trim ()klasowej String, ale w prawdziwym programowaniu powinieneś z niej skorzystać. Więc pokazaliśmy to wam. Jako że pojawił się ten temat, poniżej kilka „podpowiedzi” odnośnie tematu zajęć Stringoraz Integer:
  • Integer.toString (int i)używany do konwersji intna ciągi Java.
  • Jeśli chcesz przekonwertować obiekt Stringna obiekt Integer(a nie klasę pierwotną int), użyj metody valueOf ()on-class Integerzamiast metody parseInt ().
  • Jeśli chcesz przekonwertować ciągi znaków na dodatkowe prymitywne pola Java, użyj metod takich jak ta Long.parseLong ().
Odpowiedź: Alicja Watson
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION