導航:首頁 > 編程語言 > java動態字元串

java動態字元串

發布時間:2022-10-29 11:01:28

『壹』 java中怎麼執行字元串中的代碼

在javascript中eval()可以實現字元串轉代碼,java中需要使用動態編譯
把獲得的字元串寫入一個臨時文件中,然後編譯它,在調用其中的函數。
我們把要轉換的字元串構造一個完整的類:如果方法是有返回值的.則:

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();
//動態編譯
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;
}
//調用temp的rt方法返回結果:
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] });
//如果方法沒有返回就直接調用
}

我們可以先寫好多個重載的eval,有返回值和沒有返回值的.以及可以傳遞參數的.

這樣我們就可以用字元串轉換為java的語句來執行.

『貳』 編寫Java程序,將一字元串其中的大小寫字母的字元分別輸出

循環字元串用charAt方法來獲取字元,將字元轉為int,只要判斷轉換後的數值就可以判斷大小寫字母,大寫字母的范圍是65-90,小寫字母的范圍是97-122。

public class Main {

public static void main(String[] args) {

String s = "aaBvdEFdsd";

StringBuffer ss = convertString(s);

System.out.println("大小寫轉換後是:" + convertString(s));

System.out.println("倒序輸出後是:" + ss.reverse());

}

public static StringBuffer convertString(String str) {

String upStr = str.toUpperCase();

String lowStr = str.toLowerCase();

StringBuffer buf = new StringBuffer(str.length());

for (int i = 0, k = str.length(); i < k; i++) {

{

if (str.charAt(i) == upStr.charAt(i)) {

buf.append(lowStr.charAt(i));

} else {

buf.append(upStr.charAt(i));

}

return buf;

(2)java動態字元串擴展閱讀:

字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

『叄』 java 如何根據字元串 動態執行方法(無參和有參)

importjava.lang.reflect.Method;

publicclassTest{
publicstaticvoidmain(String[]args){
Stringa="testa";
Stringb="testb";

call(a);
call(b,"hello");

}

privatestaticvoidcall(StringmethodName){
try{
Methodm=Test.class.getDeclaredMethod(methodName);
m.invoke(Test.class);
}catch(Exceptione){
e.printStackTrace();
}
}

privatestaticvoidcall(StringmethodName,Stringparam){
try{
Methodm=Test.class.getDeclaredMethod(methodName,String.class);
m.invoke(Test.class,param);
}catch(Exceptione){
e.printStackTrace();
}
}

publicstaticvoidtesta(){
System.out.println("無參數");
}

publicstaticvoidtestb(Stringc){
System.out.println(c);
}
}

試試這個可以不。


如果解決了您的問題請採納!
如果未解決請繼續追問

『肆』 如何在Java控制台輸出動態效果(字元的跳動)

字元跳動好像不的行額...我只知道什麼顏色啊!字體啊什麼的或者加動態加音樂什麼的!對了你可以這樣嘛!判斷文本的長度!如果長度在某個段內就調用Substring()截取字元串來設定大小顏色什麼的!再創建幾個Icon ir= new ImageIcon(); 插入些制定找好的圖片 你看怎麼樣~!?加音樂如下! 可以這樣! 也是取值到某段就放MUSIC 通過Java提供的AudioClip類就可以播放了:
mid = java.applet.Applet.newAudioClip(this.getClass().getResource(midUrl[0]));mid.loop();
//循環mid.play();
//播放mid.stop();
//停止檢舉midUrl[0]是文件的路徑 不知道兄弟幫到你沒!哎!我也就這點功力了。嘿嘿

『伍』 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用字元串動態創建對象

/**
* 根據傳入的類名和值,動態構造該類的實例
*
* @param _sClassName
* 要構造的類名 如:java.lang.String
* @param _sRealValue
* 要創建的對象的值,比如「wuguowei」
* @return 返回String對象,即值為「wuguowei」的字元串
* @throws Exception
*/
private Object getAttributeObject(String _sClassName, String _sRealValue)
throws Exception {

//1.載入類對象
Class attrObjClass = Class.forName(_sClassName);

//2.如果是Long類
if (attrObjClass.isInstance(new Long(0))) {
return new Long(_sRealValue);
}

//3.如果是Integer類
if (attrObjClass.isInstance(new Integer(0))) {
return new Integer(_sRealValue);
}

//4.其他類型……

//5.返回當前類的實例對象
return attrObjClass;
}

『柒』 java怎麼動態的往一個字元串數組里加入字元串元素,

希望把標題能把問題說明白,什麼叫動態往一個字元串數據組里加入元素?我可以理解為你new一個數組之後,給這個數組賦值么?比如:

String[]arr=newString[20];
for(inti=0;i<arr.length;i++){
arr[i]="i="+i;//這里是賦值,是這個意思么?
}

『捌』 java 中 String 數組怎麼動態賦值

String[] str = new String[5]; //創建一個長度為5的String(字元串)型的一維數組
str[0] = a; //賦值
str[1] = b;
str[2] = c;
str[3] = d;
str[4] = e;
//也可以創建並賦值
String[] str = {a,b,c,d,e};//二維數組
String[][] str = new String[2][2]; //創建一個2行2列的二維數組
str[0][0] = a0; //賦值
str[0][1] = a1;
str[1][0] = b0;
str[1][1] = b1;
//也可以創建並賦值
類型名[]/[][] 變數名 = new 類型名[]/[][];

『玖』 Java 如何向一個定義好的String中動態添加字元串

你這個是往數組中添加而不是字元串中添加。java中的數組沒法添加元素,只能再創建一個更長的數組,復制進去。List類將這些功能封裝了,相當於動態數組,可以方便的添加和刪除元素。

『拾』 Java怎麼獲取一個動態的字元串中指定的值

用substring.具體用法:
字元串截取,substring(int
beginindex)
返回一個新的字元串,它是此字元串的一個子字元串。
substring(int
beginindex,
int
endindex)
返回一個新字元串,它是此字元串的一個子字元串。
beginindex
-
起始索引(包括)。從0開始
endindex
-
結束索引(不包括)。
"12345".substring(3)
returns
"45"
"12345".substring(2,
3)
returns
"23"

閱讀全文

與java動態字元串相關的資料

熱點內容
nfs怎麼加密ipsec 瀏覽:245
國二考試調用編譯器運算選擇題 瀏覽:750
同濟大學高等數學pdf 瀏覽:234
延時的宏命令怎麼設置 瀏覽:596
資料庫有哪些加密 瀏覽:209
改之理反編譯注冊教程 瀏覽:391
什麼是編譯程序和翻譯程序 瀏覽:207
python課程心得總結 瀏覽:17
派派中怎麼看對方在哪個伺服器 瀏覽:794
xp配置java環境變數配置 瀏覽:7
python中1到100怎麼算 瀏覽:765
小度我想看程序員 瀏覽:507
bs刷裝備建立後文件夾沒有 瀏覽:81
找漫畫看應該下載什麼app 瀏覽:182
如何在vps上搭建自己的代理伺服器 瀏覽:744
nginxphp埠 瀏覽:403
內臟pdf 瀏覽:152
怎麼看雲伺服器架構 瀏覽:87
我的世界國際服為什麼登不進伺服器 瀏覽:998
微盟程序員老婆 瀏覽:932