2017-09-20 42 views
0

你好,我有一個關於子串替換的問題。我在十六進制許多 不同的字符串,如:(字符串有最diffent長度)用其他變量代替某個子代

String str = 2D 10 02 B3 B2 B1 AF AE AD AC AB A9 89 A9 88 A7 A5 A4 A2 A1 00 00;

我要替換「A989」到「A8」和「A988」到「A8」(可以在不同的職位)

但它劑量工作:/。我PROGRAMM至今:

if(str.indexOf("A9")!=0) 
{ 
    if(str.indexOf("A988")!=0) 
     { 
     str_help = str.replace("A988","A8"); 
     } 
     if(str.indexOf("A989")!=0) 
     { 
     str_help= str.replace("A989","A9"); 
     } 
} 
else{ 
    str_help= str; 
} 

希望你理解並能幫助我:)

+1

你並不需要檢查是否'=的indexOf 0',因爲在str.replace(strOld,strNew)中,如果str不包含strOld,它不會改變任何東西。只是爲了清楚你的代碼 – Ivan

回答

0

此代碼似乎很好地工作:

public static void main(String[] args) 
    { 
    String str = "2D1002B3B2B1AFAEADACABA989A988A7A5A4A2A10000"; 
    String str_help = str.replace("A988","A8"); 
    str_help= str_help.replace("A989","A9"); 

    System.out.println(str_help); 
    }