Wątek przeniesiony 2014-01-18 11:40 z Java przez bogdans.

Zamiana ciągu liczb na elementy tablicy

0

Witam!
Z javą dopiero rozpoczynam swoją przygodę i napotkałem pierwsze trudności, a mianowicie chce aby pobrało mi z pola tekstowego ciąg 11 cyfr i każdą liczbę po kolei wpisało do oddzielnego elementu tablicy po wciśnięciu przycisku. Napisałem poniższy kod ale podkreśla mi błąd, może ktoś ma inny pomysł jak to zrobić.

  int numerpesel;
        numerpesel=Integer.parseInt(jTextField1.getText());
        
              byte[] tablica = new byte[11];
    for (int i = 0; i < 11; i++){
tablica[i] = Byte.parseByte(numerpesel.substring(i, i+1)); 
1
String pesel = JTextField1.getText();
if(pesel.length() == 11) {
  int[] tablica = new int[11];
  for(int i = 0; i<11; i++) {
    tablica[i] = Integer.parseInt(pesel.charAt(i));
  }
}
2

Po co Ci wiersz

numerpesel=Integer.parseInt(jTextField1.getText());

Jeśli użytkownik posłusznie wpisze 11 cyfr, to ten wiersz wyrzuci wyjątek - liczba typu int nie może być 11-cyfrowa, największa dopuszczalna wartość to 231 - 1 = 2 147 483 647.

0

Nie wiem czemu (pesel.charAt(i)); wyrzuca mi błąd?

2

Nieprawda, pesel.charAt(i) jest poprawne. Błędne jest to:

Integer.parseInt(pesel.charAt(i));

Nie podałeś jakiego typu ma być tablica zawierająca cyfry peselu. Jeżeli ma ona być typu byte[], to

byte[] bajty = jTextField1.getText().getBytes();
for(int i=0;i<bajty.length;i++)
{
    bajty[i]-=48;
}
0
Mariuszy napisał(a):

Nie wiem czemu (pesel.charAt(i)); wyrzuca mi błąd?

Sorry mój błąd, powinno być

Integer.parseInt(String.valueOf(pesel.charAt(i)));
0

A jeśli pobieram ciąg znaków alfanumerycznych to jak powinien wyglądać taki kod?

0

Jakiego typu ma być tablica, i co chcesz w niej mieć? Może to wystarczy

byte[] bajty = jTextField1.getText().getBytes();

1 użytkowników online, w tym zalogowanych: 0, gości: 1