展开全部
首先明确一下数组的初始62616964757a686964616fe4b893e5b19e31333337626264化://静态初始化
int a[]={1,2,3};
//动态初始化
int a[]; a = new int[3] ; a[0] = 1;a[1] = 2;a[2]=3;
//默认初始化
int a [] = new int [5] ;
JAVA是强类型,数组类型一旦声明,就不能更改了;
如果数组长度确定,我想所谓的“动态赋值”用循环应该可以搞定;
如果数组的长度是不确定的,我认为你这个提问才有点价值,因为这需要根据具体情况来改变数组的长度,告诉你java是怎么干的,用的 System.arraycopy, jdk 里好多操作数组的源码都是用的这个,比如 ArrayList的实现
闲着没事写了个小例子玩玩:
import java.util.Random;
import java.util.Scanner;
/**
*
* @author LYTG
* @since 2015-12-29 上午12:21:09
*/
public class DemoTest {
/**
* @author LYTG
* @param args
*/
public static void main(String[] args) {
test2();
}
/**
* @author LYTG
* @param array
*/
public static void out(String[] array){
if(array==null){
System.out.println("null");
return;
}
if(array.length<1){
System.out.println("{ }");
return;
}
StringBuffer sb = new StringBuffer();
sb.append("{\"");
sb.append(array[0]);
sb.append("\"");
for(int i = 1; i
sb.append(",\"");
sb.append(array[i]);
sb.append("\"");
}
sb.append("}");
System.out.println(sb.toString());
}
/**
* 声明一个长度为5的String类型数组,并为每个数组元素赋值一个随机整数
* @author LYTG
*/
public static void test1(){
String[] array = new String[5];
for(int i = 0; i
array[i] = String.valueOf(new Random().nextInt());
}
out(array);
}
/**
* 在控制台输入字符,把每次输入的字符保存到一个数组中,
* 如果输入的字符串中包含空格,则切割后再分别保存到此数组中,
* 在每次输入完成后输出整个数组,直到手动终止程序
* @author LYTG
*/
private static String[] array = new String[0];
public static void test2(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符(输入完请敲回车):");
String input = sc.nextLine();
if(input.contains(" ")){
String[] a = input.split(" ");
int arrayLength = array.length;
int aLength = a.length;
String[] newArray = new String[arrayLength + aLength];
System.arraycopy(array, 0, newArray, 0, arrayLength);
System.arraycopy(a, 0, newArray, arrayLength, aLength);
array = newArray;
}else{
int arrayLength = array.length;
String[] newArray = new String[arrayLength + 1];
System.arraycopy(array, 0, newArray, 0, arrayLength);
newArray[arrayLength] = input;
array = newArray;
}
out(array);
test2();
}
}