Re: [問題] 邏輯問題

看板java作者 (阿嘎)時間19年前 (2007/02/10 18:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/11 (看更多)
這題用indexOf是算蠻有效率的一種方法了 如果用indexOf來寫還必須注意一下的情況 程式碼如下: import java.lang.*; public class Code { public static void main(String args[]) { String str1="aaababaaaabbababa"; //原始字元串列 String str2=""; //空白,這放result,一開始為空 int index1=0; //用來放原始字串中"aba"的位置 int index2=0; //****************"aaa"的位置 while(true) { index1 = str1.indexOf("aba"); //step.1一開始先得兩字 index2 = str1.indexOf("aaa"); //串的位置 if(index1==-1) index1=999; if(index2==-1) index2=999; if((index1==999)&&(index2==999)) break; if(index1<index2) //step.2比較兩字串的 { if(index1==-1) //先後,先的字串index小 continue; str2=str2+"1"; str1 = str1.substring(0,index1)+"***"+ str1.substring(index1+3); } else { if(index2==-1) continue; str2=str2+"0"; str1 = str1.substring(0,index2)+"***"+str1.substring(index2+3); } } System.out.println(str2); //step.3印出結果 } } note:***是代表用來替換掉已找到的子字串,使迴圈正常運作 999 是自己設定的一個大數,因為index在找不到子字串的時後會傳回-1 若沒有設定此數,則if會誤判 ꬊ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.114.0.228
文章代碼(AID): #15pPywFX (java)
討論串 (同標題文章)
文章代碼(AID): #15pPywFX (java)