Variablen split-Funkton mit zwei Variabeln verwenden?

SirTiger_

Mitglied
Hallo!
Ich versuche auf eine Arraystelle ,welche mit der split-Funktion erstellt wurde, mit 2 Variabeln zuzugreifen jedoch erscheint daraufhin dieses Fehlermeldung.
***Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 252
at PdfcopyPackage.Main.main(Main.java:73)***

Hier der Code:
Java:
package PdfcopyPackage;


import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;

import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;

public class Main {
    public static void main(String[] args)  {
       
        System.out.println("Name der AusgangsPDF");
        Scanner var = new Scanner(System.in);
        Var.PdfName = var.next();
       
       
        StringBuffer buff = new StringBuffer();   
        try {
            PdfReader reader = new PdfReader(
                    "C:/Users/Robin/Desktop/Marius-Projekt/"+ Var.PdfName +".pdf");
            int numberOfPages = reader.getNumberOfPages();
            String s;
            for (int i = 1; i <= numberOfPages; i++) {
                s  = PdfTextExtractor.getTextFromPage(reader, i);
                buff.append(s + "\n");
            }   
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        int i2 = 1;
        boolean help2 = true;
        String[] splitbuff = buff.toString().split("\\s+");
        while (i2 != splitbuff.length){
            if (splitbuff[i2].equals("Seriennummer:")){
                String help = splitbuff[i2+1];
                String[] splithelp = help.split("");
                int i3 = 0;
                help = "";
                while ( i3 != splithelp.length){
                   
                   
                    if (!splithelp[i3].equals("0") && !splithelp[i3].equals("1") && !splithelp[i3].equals("2") && !splithelp[i3].equals("3") && !splithelp[i3].equals("4") && !splithelp[i3].equals("5") && !splithelp[i3].equals("6") && !splithelp[i3].equals("7") && !splithelp[i3].equals("8") && !splithelp[i3].equals("9") && !splithelp[i3].equals("-")) {
                       
                        help2 = false;
                       
                    }
                    else if (help2 == true) {
                        Var.Seriennummer = help = help+splithelp[i3];
                    }
                    i3++;
                }
                
            }
            help2 = true;
            String help = "";
            if (splitbuff[i2].equals("Standort:")){
                int i4 = 0;
                while (help2 = true){
                    if (splitbuff[i2+i4].equals("Fax")){
                        help2 = false;
                    }
                    else{
                        help = help+splitbuff[i2+i4];
                    }
                    i4++;
                }
                System.out.println(help);
                
                
                
            }
           
           
           
           
        //System.out.println(splitbuff[i2]);
        i2++;
        }
 
Der StackTrace verrät dir genau in welcher Zeile der Fehler passiert.
Anmerkung: Arrays beginnen bei Index 0, der größte Index ist Arraylänge - 1!
 
Der StackTrace verrät dir genau in welcher Zeile der Fehler passiert.
Anmerkung: Arrays beginnen bei Index 0, der größte Index ist Arraylänge - 1!
Ich weiß in welcher Zeile der Fehler passiert, jedoch passiert dieser nur wenn ich 2 Variabeln zum aufrufen nutze. Nun bräuchte ich eine Lösung mit der ich trotzdem beide Variabeln (i2 + i4) zum Aufrufen nutzen kann.
Oder hab ich grade ein Brett vorm Kopf?
 
Ich weiß in welcher Zeile der Fehler passiert,
Gut und um welche Zeile handelt es sich? Sowas bitte immer dazu posten.

jedoch passiert dieser nur wenn ich 2 Variabeln zum aufrufen nutze. Nun bräuchte ich eine Lösung mit der ich trotzdem beide Variabeln (i2 + i4) zum Aufrufen nutzen kann.
Du musst natürlich prüfen ob i2 + i4 noch einen gültigen Index ergibt

Anmerkung zu deinem Code: Die while-Schleife beim Standort läuft endlos! Du verwendest eine Zuweisung statt einem Vergleich.
Schreibe am besten einfach nur: while(help2). Benenne deine Variablen sinnvoller und zähle nicht durch.
 
Gut und um welche Zeile handelt es sich? Sowas bitte immer dazu posten.


Du musst natürlich prüfen ob i2 + i4 noch einen gültigen Index ergibt

Anmerkung zu deinem Code: Die while-Schleife beim Standort läuft endlos! Du verwendest eine Zuweisung statt einem Vergleich.
Schreibe am besten einfach nur: while(help2). Benenne deine Variablen sinnvoller und zähle nicht durch.
Dankeschön 🙂
 

Zurück
Oben