❶ 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中怎麼將新創建的對象名動態的添加到一個數組中
可以用反射來做,比如有個類叫Snake Class.forName("Snake").newInstance();這樣可以獲得該類實例,前提是有一個無參數構造函數來支持反射
有或者維護一個類名數組並根據一個創建器(工廠)來返回實例
比如classes = {"Snake","Fish"}
再寫一個方法create(int classId){
switch(classId)
case 0: return new Snake();
case 1: return new Fish();
}
輸入字元串BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s = in.readLine();
for(int i= 0,n=classes.length();i<n;i++){
if(classes[i].equals(s)){
create(i);
}
}
僅僅提供一些參考希望對能給你啟發
❸ java對象數組怎麼動態輸入
Scanner 是讀入畢蘆字元串或單個字元等
你可以把讀入滾戚的字元串用空格分割成數據,再循環數組取出各個參大數陵數,再調用你的TestingContent方法就行了
❹ java中怎樣給二維數組動態賦值
public class qq{ public static void main(String [] args){ int b[][]; b[][]=new int [2][2]; int k=0; for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ b[i][j]=Integer.parseInt(args[k]) k++; System.out.println(b[i][j]); } } } }
❺ JAVA怎麼實現動態數組輸入
看一下這個能否解決你的問題:
輸入0後,會把數組列印出來.
❻ 怎樣實現java的動態輸入
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test_001 {
public static void main(String[] args) {
boolean run = true;
int n;
while(run){
try {
System.out.println("請輸入一個整數:");
Scanner s1 = new Scanner(System.in);
n = s1.nextInt();
System.out.println("OK,輸入正確!你輸入的數為:" + n);
run = false;
} catch (InputMismatchException e) {
System.out.print("你的輸入有誤,");
}
}
}
}
哈哈,樓主是這個意思吧。。希望對你有用。