2015-10-03 37 views
3

想象一下如果你改變DNA的基地,它們的互補(A - >TT - >A等)replaceFirst的重複字符串的每一個字母被修改

如果我想只用一個替換命令(無論是replaceFirst,replaceAll等)在一行中執行此操作,我將如何執行該操作,或者如果沒有運行到邏輯陷阱中,我該如何操作?

System.out.println(X.replaceFirst("A","T").replaceFirst("G","C").replaceFirst("C","G").replaceFirst("T","A"); 

如果我在這裏說AAA作爲密碼子,它會出來AAA。有沒有一種方法可以編寫一個字母被更改後,不能再被更多的命令改變?

回答

3

你可以但它是非常可怕的。

String x = "AAA"; 
System.out.println(x.replace("A", "X") 
        .replace("G", "Y") 
        .replace("C", "G") 
        .replace("T", "A") 
        .replace("X", "T") 
        .replace("Y", "C")); 

訣竅是未使用的其他字母來替換信AG,然後在結束更換那些未使用的字母。

我建議你真的不使用此代碼和:

  • if聲明
  • 使用的所有4個鹼基enum及其相應的補充作爲構造函數的參數。
+0

啊,應該有這個想法。如果我要做到這一點,那麼最好的策略是什麼? – PTiger17

+0

@ PTiger17國際海事組織,最好的策略是建立一個enum'Base',其中4個值和構造函數採取互補的基礎。 – Tunaki

相關問題