⑴ java 中 String 数组怎么动态赋值
首先明确一下数组的初始化:
//静态初始化
inta[]={1,2,3};
//动态初始化
inta[];a=newint[3];a[0]=1;a[1]=2;a[2]=3;
//默认初始化
inta[]=newint[5];
JAVA是强类型,数组类型一旦声明,就不能更改了;
如果数组长度确定,我想所谓的“动态赋值”用循环应该可以搞定;
如果数组的长度是不确定的,我认为你这个提问才有点价值,因为这需要根据具体情况来改变数组的长度,告诉你java是怎么干的,用的System.array,jdk里好多操作数组的源码都是用的这个,比如ArrayList的实现
闲着没事写了个小例子玩玩:
importjava.util.Random;
importjava.util.Scanner;
/**
*
*@authorLYTG
*@since2015-12-29上午12:21:09
*/
publicclassDemoTest{
/**
*@authorLYTG
*@paramargs
*/
publicstaticvoidmain(String[]args){
test2();
}
/**
*@authorLYTG
*@paramarray
*/
publicstaticvoidout(String[]array){
if(array==null){
System.out.println("null");
return;
}
if(array.length<1){
System.out.println("{}");
return;
}
StringBuffersb=newStringBuffer();
sb.append("{"");
sb.append(array[0]);
sb.append(""");
for(inti=1;i<array.length;i++){
sb.append(","");
sb.append(array[i]);
sb.append(""");
}
sb.append("}");
System.out.println(sb.toString());
}
/**
*声明一个长度为5的String类型数组,并为每个数组元素赋值一个随机整数
*@authorLYTG
*/
publicstaticvoidtest1(){
String[]array=newString[5];
for(inti=0;i<array.length;i++){
array[i]=String.valueOf(newRandom().nextInt());
}
out(array);
}
/**
*在控制台输入字符,把每次输入的字符保存到一个数组中,
*如果输入的字符串中包含空格,则切割后再分别保存到此数组中,
*在每次输入完成后输出整个数组,直到手动终止程序
*@authorLYTG
*/
privatestaticString[]array=newString[0];
publicstaticvoidtest2(){
Scannersc=newScanner(System.in);
System.out.println("请输入一串字符(输入完请敲回车):");
Stringinput=sc.nextLine();
if(input.contains("")){
String[]a=input.split("");
intarrayLength=array.length;
intaLength=a.length;
String[]newArray=newString[arrayLength+aLength];
System.array(array,0,newArray,0,arrayLength);
System.array(a,0,newArray,arrayLength,aLength);
array=newArray;
}else{
intarrayLength=array.length;
String[]newArray=newString[arrayLength+1];
System.array(array,0,newArray,0,arrayLength);
newArray[arrayLength]=input;
array=newArray;
}
out(array);
test2();
}
}
⑵ java 中 String 数组怎么动态赋值
publicclassStringTest{
publicstaticvoidmain(String[]args){
//方法1:知道数组有多长的前提下!
String[]srr=newString[10];
//循环动态赋值!
for(inti=0;i<srr.length;i++){
srr[i]="第"+(i+1)+"个字符串";
System.out.println(srr[i]);
}
System.out.println("-------------分割线----------------");
//方法2:用这个比较好,就是不知道数组多长的前提下!
//用容器桥接!
StringBuilderstb=newStringBuilder();//字符串容器!
//随便一个长度,自定义!
for(inti=0;i<10;i++){
stb.append("第"+(i+1)+"个字符串,");
}
//定义一个数组,然后切割容器即可!
String[]arr=newString(stb).split(",");
//查看切割好的字符串数组!
for(Stringa:arr)
System.out.println(a);
}
}
⑶ java动态创建数组并给其赋值
importjava.util.Scanner;
publicclassTest{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("请输入创建的数组的大小:");
intsize=sc.nextInt();
int[]a=newint[size];
System.out.println("手动为每个数组元素赋值:");
for(inti=0;i<size;i++){
a[i]=sc.nextInt();
}
System.out.println("动态创建的数组为:");
for(inti=0;i<size;i++){
System.out.print(a[i]+"");
}
}
}
⑷ java 中 String 数组怎么动态赋值
String数组盯丛元素个数是固定的,声明多少就是多少,如果你要改变元素的值就使用 str[i] = "1";的形式赋值,如果要扩容可以间接的做
定义一陵则仔个扩容方法,参数1 要扩容的数组、参数2 要扩容的位数
方法中功能:获取参数1的length,新建一个数组,长度为参数1的length加上参数2的值,
for循环尺汪,将参数1的元素依次写入新建的数组,将新数组返回
⑸ java作业 如何给一个数组动态赋值
//这里提供下实现思路,不保证高效,如果想看高效的实现方式,可以看看ArrayList的实现源码
//数组
int[]is=newint[1];
//标记数组的非空长度
intsize=0;
publicint[]add(intt){
//如果数据长度大于等于数组长度,则扩充数组
if(size>=is.length){
//每次扩充10个长度
int[]temp=newint[size+10];
//将is的数据拷贝到临时数组中
笑含for(inti=0;i<is.length;i++){
temp[i]=is[i];
谈升信}
is=temp;
含轮}
//给数组赋值
is[size++]=t;
}
⑹ java 中 String 数组怎么动态赋值
java中有一个叫做集合,这个长度是可以动态变化的,你可以使用集合和泛型。
数组和集合是有区别的 集合的拦迅早长度可简雀以不固定 但是数组的长度必须确定的 你所谓的数组动态只是在已经声明的长度的情况下 给某个索引下的元素赋值昌亮
⑺ java 中 String 数组怎么动态赋值
定义一个String类型的变量:s 然后在要赋值的地方赋值:s="abc";就可以了。
⑻ java创建一个数组,动态为数组赋值,升序排序后输出
public class Test { public static void main(String[] args) { int[] n = new int[10]; Random r = new Random();//实例一个随机数对象 for(int i = 0; i < n.length; i++) { n[i] = r.nextInt();//将一个随机数赋给下标为i的数组元素 System.out.println(n[i]);//打印这个数显示出来 } int max = n[0];/基则/初始将高锋链数组的第一个数当成戚孙最大的数给max变量 for(int i = 1; i < n.length; i++) { //如果max小于下标为i的数组元素,就重新赋值 if(max < n[i]) max = n[i]; } System.out.println("最大:" + max);//显示最大的数 } }
⑼ java的中字符串数组怎么动态赋值急求
定义一个String类型的槐坦变量:s
然后在要赋值的地铅唯桐方赋值:s="abc";就山宴可以了。
⑽ java怎么给int数组加一个值
静态声明:
int[] a = {1,2,3};
动态声明:
int[] b = new int[3];
b[0] = 1;
b[1] = 2;
b[2] = 3;