Хранение массива строк в заданных переменных соответственно

53
4

Я новичок в JAVA, и я пишу этот код, который должен получать массив строк и хранить каждую строку (элемент массива) в указанных переменных соответственно. Но он сохраняет только первый элемент. Ниже приведен код:

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

спросил(а) 2016-04-20T17:31:00+03:00 4 года, 1 месяц назад
1
Решение
107

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();
}
}

ответил(а) 2016-04-20T18:06:00+03:00 4 года, 1 месяц назад
38

Там гораздо проще сделать то, что вы пытаетесь сделать, используя метод String split():

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];
}

ответил(а) 2016-04-20T17:42:00+03:00 4 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема