Witam, piszę ostatnio skrypt na zajęcia z postaw programowania i mam z nim problem, a mianowicie gdy chcę prze konwertować String na Int z zapisaną liczbą binarnie (linia 60) przy liczbie "10000000111" wyskakuje mi error i program się dalej nie wykonuje. Czy wie ktoś jak można rozwiązać ten problem?
error:
Exception in thread "main" java.lang.NumberFormatException: For input string: "10000000111"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at zadanie2.Zadanie2.main(Zadanie2.java:60)
Skrypt:
package zadanie2;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class Zadanie2 {
public static void main(String[] args) throws FileNotFoundException {
// podpunkt 2
int licznik = 0;
int licznik2 = 0;
int licznik3 = 0;
String superPierwsza = "";
String superBPierwsza = "";
int liczba = 0;
int suma = 0;
int suma2 = 0;
int result2 = 0;
String result = "";
String pattern = "01";
for (int i=2; i<=1500; i++) {
for(int j=2; j<i; j++) {
if(i%j == 0) {
licznik++;
}
}
if(licznik < 2) {
liczba = i;
while(liczba>0) {
suma = suma + liczba%10;
liczba = liczba / 10;
}
for(int n=1; n<suma; n++) {
if(suma%n == 0) {
licznik2++;
}
}
if(licznik2 < 2) {
superPierwsza = superPierwsza +i+", ";
liczba = i;
while(liczba>0) {
result = pattern.charAt(liczba % 2) + result;
liczba = liczba/2;
}
result2 = Integer.parseInt(result);
while(result2>0) {
suma2 = suma2 + result2%10;
result2 = result2 / 10;
}
for(int n=1; n<suma2; n++) {
if(suma2%n == 0) {
licznik3++;
}
}
if(licznik3 < 2) {
superBPierwsza = superBPierwsza +i+", ";
}
suma2 = 0;
licznik3 = 0;
result = "";
}
suma = 0;
licznik2 = 0;
}
licznik = 0;
}
System.out.println(superPierwsza);
System.out.println(superBPierwsza);
PrintWriter zapis = new PrintWriter("super.txt");
zapis.print(superPierwsza);
zapis.close();
PrintWriter zapis2 = new PrintWriter("superB.txt");
zapis2.print(superBPierwsza);
zapis2.close();
}
}