在Java中如何迭代String对象中的特定元素(ArrayList):

huangapple go评论149阅读模式
英文:

how to iterate over specific elements in string objects (arraylist Java)

问题

  1. ArrayList<String> dnaArray = new ArrayList<>();
  2. ArrayList<Character> compArray = new ArrayList<>();
  3. // [tac, tat, tta, aaa, aac, aca, aac, ttt]
  4. public void createCompliment() {
  5. for (String letters : dnaArray) {
  6. StringBuilder complement = new StringBuilder(); // Create a StringBuilder to store the complemented string
  7. for (int i = 0, len = letters.length(); i < len; i++) {
  8. char character = letters.charAt(i);
  9. if (character == 'a') {
  10. complement.append('t'); // Append 't' for 'a'
  11. } else if (character == 'c') {
  12. complement.append('g'); // Append 'g' for 'c'
  13. } else {
  14. complement.append(character); // Keep other characters unchanged
  15. }
  16. }
  17. compArray.add(complement.toString()); // Add the complemented string to the compArray
  18. }
  19. }

这是您的代码的修改部分,用于创建互补字符串并将其添加到compArray中。最后,您将得到您所期望的输出:

  1. [ttg, ttt, ttt, ttt, ttg, tgt, ttg, ttt]
英文:
  1. ArrayList&lt;String&gt; dnaArray = new ArrayList&lt;&gt;();
  2. ArrayList&lt;Character&gt; compArray = new ArrayList&lt;Character&gt;();
  3. // [tac, tat, tta, aaa, aac, aca, aac, ttt]
  4. public void createCompliment() {
  5. for (String letters : dnaArray) {
  6. for (int i = 0, len = letters.length(); i &lt; len; i++) {
  7. char character = letters.charAt(i);
  8. if (character == &#39;a&#39;){
  9. character = &#39;t&#39;;
  10. } else if (character == &#39;c&#39;) {
  11. character = &#39;g&#39;;
  12. }
  13. compArray.add(character);
  14. }
  15. }
  16. }

How would I access specific characters, change 'a' to 't' and similarily from 'c' to 'g'.
Then added to a new arraylist and return something like:

[ttg, ttt, ttt, ttt, ttg, tgt, ttg, ttt]

instead of: [t, t, g, t, t, t, t, t, t, t, t, t, t, t, g, t, g, t, t, t, g, t, t, t]

appreciate it

答案1

得分: 1

在我看来,最简单的方法是使用字符串替换:

  1. ArrayList<String> dnaArray = new ArrayList<>();
  2. ArrayList<String> compArray = new ArrayList<>();
  3. public void createCompliment() {
  4. for (String letters : dnaArray) {
  5. compArray.add(letters.replace('a', 't').replace('c', 'g'));
  6. }
  7. }
英文:

the easiest way in my opinion is to use string replace:

  1. ArrayList&lt;String&gt; dnaArray = new ArrayList&lt;&gt;();
  2. ArrayList&lt;String&gt; compArray = new ArrayList&lt;String&gt;();
  3. public void createCompliment() {
  4. for (String letters : dnaArray) {
  5. compArray.add(letters.replace(&#39;a&#39;, &#39;t&#39;).replace(&#39;c&#39;, &#39;g&#39;));
  6. }
  7. }

答案2

得分: 1

你可以使用StringBuilder()来创建新的字符串,然后将其添加到compArray中。

尝试这样做:

  1. for(String letters : dnaArray) {
  2. StringBuilder sb = new StringBuilder();
  3. for(int i=0; i<letters.length(); i++) {
  4. char character = letters.charAt(i);
  5. if (character == 'a'){
  6. sb.append('t');
  7. }
  8. else if (character == 'c'){
  9. sb.append('g');
  10. } else {
  11. sb.append(String.valueOf(character));
  12. }
  13. }
  14. compArray.add(sb.toString());
  15. }

输出:

  1. [ttg, ttt, ttt, ttt, ttg, tgt, ttg, ttt]
英文:

You can use a StringBuilder() to create the new String then add it to compArray.

Try this:

  1. for(String letters : dnaArray) {
  2. StringBuilder sb = new StringBuilder();
  3. for(int i=0; i&lt;letters.length(); i++) {
  4. char character = letters.charAt(i);
  5. if (character == &#39;a&#39;){
  6. sb.append(&quot;t&quot;);
  7. }
  8. else if (character == &#39;c&#39;){
  9. sb.append(&quot;g&quot;);
  10. } else {
  11. sb.append(String.valueOf(character));
  12. }
  13. }
  14. compArray.add(sb.toString());
  15. }

Output:

  1. [ttg, ttt, ttt, ttt, ttg, tgt, ttg, ttt]

huangapple
  • 本文由 发表于 2020年8月14日 17:34:25
  • 转载请务必保留本文链接:https://go.coder-hub.com/63410261.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定