2013-01-24 64 views
2

我無法弄清楚如何在程序運行時用字符串替換字符串。 這甚至可能嗎? 程序運行時,我想用另一個字代替一個單詞,然後繼續從該行運行。如何用另一個字符串替換字符串並將其插入到Java代碼中的下一行

我怎麼能這樣做? 感謝所有

hstring.replace("picstart", "up1"); 
g.drawPixmap(Assets.picstart , 128, 160); 
+1

您需要更換一個常量與變量。 – dasblinkenlight

+0

您無法在運行時修改您自己的源代碼。你究竟在做什麼?您可能需要使用反射。 –

+0

您可以使用反射來按名稱查找字段,但這並不是一個好主意。 –

回答

1

String是不變的,這意味着你必須將結果分配給一個變量:

hstring = hstring.replace(...); 
+0

感謝downvoting。現在,是否有可能知道什麼是downvote? –

3

您的代碼會是這個樣子。

if (condition) { 
    g.drawPixmap(Assets.picstart , 128, 160); 
} else { 
    g.drawPixmap(Assets.up1 , 128, 160); 
} 
1

請勿使用反射。假設你的資產代碼處理你的圖像或質感,或任何情況而定:

String hstring = "picstart"; 
// ... stuff happens 
// that forces us to change hstring! ... 
hstring = hstring.replace("up1"); // or you could just say hstring = "up1"; 
g.drawPixmap(Assets.getAssetFor(hstring), 128, 160); 

然後在你的靜態資產類別,你可以有:

public PixelMap getAssetFor(String identifier) { 
    if (identifier.equals("picstart") { 
     return new PicStartPixelMap(); 
    } 
    else if (identifier.equals("up1")) { 
     return new UpOnePixelMap(); 
    } 
} 
+0

即時消息我會嘗試getassetfor(hstring),也許這樣做 –

+0

@WilliamMChildsIv你必須自己編程該功能。我不是在談論任何預先構建的方法。 – sdasdadas

+0

爲什麼要讓hstring像這樣工作?>>>> g.drawPixmap(Assets.hstring,128,160); –

相關問題