1. java中定義一個字符串數(shù)組方式如下,string類型和其他基本類型相似,創(chuàng)建數(shù)組有兩種方式?:
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個人等客戶提供了成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽,完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
String[] str={"AAA","BBB","CCC"};
String str[]={"AAA","BBB","CCC"};
2.推薦用ArrayListString strArray = new ArrayListString (); 比較靈活。
3.也可以寫為如下格式:class[] array;? ? ?array = new class[number];其中前半句為聲明,后半句為初始化,初始化必須要讓編譯器知道大小,聲明的時候java是不分配內(nèi)存的,只有創(chuàng)建的時候也就是new的時候才會分配內(nèi)存。
擴展資料:
1.數(shù)組是相同數(shù)據(jù)類型的元素的集合。
2.數(shù)組中的各元素的存儲是有先后順序的,它們在內(nèi)存中按照這個先后順序連續(xù)存放在一起。
3.數(shù)組元素用整個數(shù)組的名字和它自己在數(shù)組中的順序位置來表示。例如,a[0]表示名字為a的數(shù)組中的第一個元素,a[1]代表數(shù)組a的第二個元素,以此類推。
4.對于VB的數(shù)組,表示數(shù)組元素時應(yīng)注意:下標要緊跟在數(shù)組名后,而且用圓括號括起來(不能用其他括號)。下標可以是常量,變量,或表達式,但其值必須是整數(shù)。下標必須為一段連續(xù)的整數(shù),其最小值成為下界,其最大值成為上界。不加說明時下界值默認為1。
參考資料:字符數(shù)組_百度百科
java里java字符串數(shù)組合并成一個數(shù)組方法如下:
//方法一 Arrays類
String[] a = {"A","B","C"};
String[] b = {"D","E"};
// ListString list = Arrays.asList(a);? --OK
// ListString list = Arrays.asList("A","B","C"); --OK
// list.add("F"); --UnsupportedOperationException
// list.remove("A"); --UnsupportedOperationException
// list.set(1,"javaee");--OK (因為是把數(shù)組轉(zhuǎn)為集合,其本質(zhì)還是數(shù)組,數(shù)組長度固定不變,但內(nèi)容可以改變)
// 結(jié)論:雖然可以把數(shù)組轉(zhuǎn)為集合,但是集合長度不能改變
List list = new ArrayList(Arrays.asList(a));
list.addAll(Arrays.asList(b));
String[] str = new String[list.size()];
list.toArray(str);
for(int x=0;xstr.length;x++){
System.out.print(str[x] + " ");
}
//方法二 循環(huán)遍歷
// 兩個數(shù)組合并
String[] str1 = {"Hello","world","java"};
String[] str2 = {"Veriable","syntax","interator"};
String[] newStr = new String[str1.length+str2.length];
//newStr = str1;數(shù)組是引用類型
for(int x=0;xstr1.length;x++){
newStr[x] = str1[x];
}
for(int y=0;ystr2.length;y++){
newStr[str1.length+y]=str2[y];
}
for(int y=0;ynewStr.length;y++){
System.out.println(newStr[y] + " ");
}
// 方法三
String[] str1 = {"Hello","world","java"};
String[] str2 = {"Veriable","syntax","interator"};
int str1Length = str1.length;
int str2length = str2.length;
str1 = Arrays.copyOf(str1, str1Length+str2length);//數(shù)組擴容
System.arraycopy(str2, 0, str1, str1Length, str2length);
System.out.println(Arrays.toString(str1));
方法是有的,但不全實際.
首先,你要理解,JAVA代碼的運行是要被編譯成字節(jié)碼codebyte后才能被執(zhí)行的,以你問題中的意思,那個字符串應(yīng)該是在怎么代碼被編譯后項目在運行時,再傳入的參數(shù),這時,要想把傳入?yún)?shù)的字符串當成JAVA代碼來運行,只有一種辦法,就是把傳進來的字符串轉(zhuǎn)換成字節(jié)碼,并且,要虛擬加一個方法體出來.這也不是不可行,可用的技術(shù)有asm.cglib等字節(jié)碼技術(shù).但你想,對于你的問題.這樣有實際的意義嗎
你還不如,把system.out.print重定義成新的外調(diào)方法調(diào)動來的清晰
在javascript中eval()可以實現(xiàn)字符串轉(zhuǎn)代碼,java中需要使用動態(tài)編譯。
把獲得的字符串寫入一個臨時文件中,然后編譯它,在調(diào)用其中的函數(shù)。
我們把要轉(zhuǎn)換的字符串構(gòu)造一個完整的類:如果方法是有返回值的.則:
public object eval(string str){
//生成java文件
string s = "class temp{";
s += "object rt(){"
s += "myclass mc = new myclass();"
s += " return mc."+str+"();";
s += "}"
s +="}";
file f = new file("temp.java");
printwriter pw = new printwriter(new filewriter(f));
pw.println(s);
pw.close();
//動態(tài)編譯
com.sun.tools.javac.main javac = new com.sun.tools.javac.main();
string[] cpargs = new string[] {"-d", "所在目錄","temp.java"};
int status = javac.compile(cpargs);
if(status!=0){
system.out.println("沒有成功編譯源文件!");
return null;
}
//調(diào)用temp的rt方法返回結(jié)果:
myclassloader mc = new myclassloader();
class clasz = mc.loadclass("test.class",true);
method rt = clasz.getmethod("rt", new class[]{ string[].class });
return rt.invoke(null, new object[] { new string[0] });
//如果方法沒有返回就直接調(diào)用
}
我們可以先寫好多個重載的eval,有返回值和沒有返回值的.以及可以傳遞參數(shù)的.
這樣我們就可以用字符串轉(zhuǎn)換為java的語句來執(zhí)行.