java 动态给数组赋值_java 中 String 数组怎么动态赋值

展开全部

首先明确一下数组的初始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();

}

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值