【发布时间】:2016-04-20 14:31:43
【问题描述】:
我是 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
【问题讨论】:
-
请缩进您的代码以便于阅读。
-
我认为 String.split(",") 会让你的生活变得更轻松
-
实际上你陷入了一个无限循环,因为你确实在最后一个循环中注释掉了
temp =charObjectArray[x]`(之后你会遇到IOOBE)。无论如何,这是一种读取数组的奇怪方式,我会坚持@BrianAgnew 所说的。