2016-04-20 14 views
1

Ich bin ein Anfänger bei JAVA und ich schreibe diesen Code, der ein Array von Zeichenfolgen erhalten soll und jede Zeichenfolge (Array-Element) in den angegebenen Variablen jeweils speichern soll. Aber es speichert nur das erste Element. Unten ist der Code:Speichern Array von Zeichenfolgen in gibt Variablen

package ontoretrive; 

import org.apache.commons.lang3.ArrayUtils; 

public class j { 
static String sss= "male,O+,45,saudi,brain_diseases"; 
static int size =sss.length(); 

static String male=""; 
static String blood=""; 
static String age=""; 
static String nat=""; 
static String dis=""; 
static char temp; 
static void func(){ 
    char[] charArray = sss.toCharArray(); 
    Character[] charObjectArray = ArrayUtils.toObject(charArray); 
    int count=0; 
    int x=0; 
    while (x< size){ 
     temp =charObjectArray[x]; 
while(temp!=','&&count==0){ 
       male=male+temp; 
       x++; 
       temp =charObjectArray[x];} 
x++; 
temp =charObjectArray[x]; 

count++;    

while(temp!=','&&count==1){ 
     blood=blood+temp; 
     x++; 
     temp =charObjectArray[x];} 
x++; 
temp =charObjectArray[x]; 
count++;    

while(temp!=','&&count==2){ 
     age=age+temp; 
     x++; 
     temp =charObjectArray[x]; 
}x++; 
temp =charObjectArray[x]; 
count++;    

while(temp!=','&&count==3){ 
     nat=nat+temp; 
     x++; 
     temp =charObjectArray[x]; 
}x++; 
temp =charObjectArray[x]; 
count++;    


while(temp!=','&&count==4){ 
     dis=dis+temp; 
     x++; 
     //temp =charObjectArray[x]; 
     } 
x++; 
// temp =charObjectArray[x]; 
count++; } 

System.out.println(male);//end while1 
System.out.println(blood);//end while1 
System.out.println(age);//end while1 
System.out.println(nat);//end while1 
System.out.println(dis);//end while1 

}//end func 
public static void main(String[] args) { 
    System.out.println("dis1"); 
    func(); 
    System.out.println(male);//end while1 

    //System.out.println("dis3"); 


} 
} //end class 
+0

Bitte einrücken Ihren Code für eine einfache Lesung. – Blitzkr1eg

+6

Ich denke String.split (",") wird Ihr Leben erheblich erleichtern –

+0

Eigentlich stecken Sie in einer Endlosschleife fest, weil Sie das 'temp =' charObjectArray [x] 'in der letzten Schleife auskommentiert haben (Sie werden laufen in eine "IOOBE" danach). Wie auch immer, das ist eine komische Art, ein Array durchzulesen und ich bleibe bei dem, was @BrianAgnew gesagt hat. – SomeJavaGuy

Antwort

0
public class j { 

    static String sss = "male,O+,45,saudi,brain_diseases"; 
    static int size = sss.length(); 

    //I suggest you not to give them a start value or set them as null 
    static String male = ""; 
    static String blood = ""; 
    static String age = ""; 
    static String nat = ""; 
    static String dis = ""; 

    static void func() { 

     //it uses the "," character to breaks the string sss into pieces 
     //so became into "male","O+","45","saudi","brain_diseases" 
     String[] pieces = sss.split(","); 

     //pieces[0] is the first piece so = "male" 
     //pieces[1] is the second "O+" and so on 
     male = pieces[0]; 
     blood = pieces[1]; 
     age = pieces[2]; 
     nat = pieces[3]; 
     dis = pieces[4]; 

     System.out.println(male); 
     System.out.println(blood); 
     System.out.println(age); 
     System.out.println(nat); 
     System.out.println(dis); 

    } 

    public static void main(String[] args) { 

     func();   
    } 
} 
+1

Es hat funktioniert! Danke vielmals! – Ciba

0

Es gibt eine viel einfachere Art und Weise zu tun, was Sie zu tun versuchen, split() Methode der Verwendung von String:

static void func(){ 
    String[] split = sss.split(","); 
    if (split.length < 5) { 
     // this means some error in the input, need to handle 
    } 
    male=split[0]; 
    blood=split[1]; 
    age=split[2]; 
    nat=split[3]; 
    dis=split[4]; 
} 
Verwandte Themen