テッドのpottel:
私は、文字列のコピーを作成して、文字列全体を変更せずにコピーに変更を行う能力を持っていると思います。私が使用してみましたString strTemplateTemp=new String(strTemplate);
代わりにString strTemplateTemp=strTemplate;
、私も使ってみましたclone
が、cloneメソッドは見えなかったというエラーを得ました:String strTemplateTemp=strTemplate.clone();
私のコード
DefaultListModel<String> getAllMacrows()
{
DefaultListModel<String> rows= new DefaultListModel<String>();
int pes=0;
int nameStart;
int parEnd;
String row;
String strTemplateTemp=new String(strTemplate);
strTemplateTemp=strTemplateTemp.replace("\n"," ");
// now both strTemplateTemp and strTemplate have chnaged
// want just strTemplateTemp to chnage
SDJ:
JavaではString
インスタンスである不変、文字列を変更することはできませんので、(すなわち、副作用を持っています)。声明:
strTemplateTemp=strTemplateTemp.replace("\n"," ");
新しい文字列を作成し、変数に新しい文字列への参照を割り当てますstrTemplateTemp
。
文字列は一定です。それらが作成された後、それらの値を変更することはできません。文字列バッファは可変文字列をサポートしています。Stringオブジェクトは不変であるので、それらを共有することができます。java.lang.Stringで
参照この記事の詳細については。