繁体   English   中英

如何替换 Java 中字符串中的某些字符?

[英]How can I replace certain characters within a String in Java?

我有一个程序可以读取输入(字符串)并打印反转的字符串。 现在,我需要通读反向字符串并将所有“A”替换为“T”,将“T”替换为“A”,将“G”替换为“C”和“C” "s 到 "G"s。 所以基本上,“补充”。 我尝试使用多行替换 function 但是一旦“A”变成“T”,它会将所有这些替换成“A”,所以根本没有“T”。 如何替换字符以使它们不会相互覆盖?

这是我的代码,如果有帮助的话,我还没有任何函数来获取“补码”。 但这是我正在使用的。

import java.util.*;

public class DNA {    
    public static void main(String[] args) 
    {
        System.out.println("Please input a DNA sequence: ");

        Scanner read;
        read = new Scanner(System.in);
        String input = read.next();               

        String reverse="";
        for(int i = input.length() - 1; i >= 0; i--) {
            reverse = reverse + input.charAt(i);
        }

        System.out.println("Here is the reversed sequence: ");
        System.out.println(reverse);
    }    
}

您可以将反向字符串转换为 char 数组,如下所示:

char[] charArr = reverse.toCharArray();

然后你可以遍历它并改变你想要的字符:

    for(int i = 0; i < charArr.length; i++){
        if(charArr[i] == 'A'){
            charArr[i] = 't';
        }   
    }

最后,您可以将 char 数组转换回字符串,如下所示:

String str = new String(charArr);

使用替换方法,但将您的值更改为“临时”字符。 https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replace(char,%20char)

  • 替换 T -> x
  • 替换 A -> T
  • 替换 x -> A

对所有对重复此操作。

这是您可以尝试的代码示例:

import java.util.Scanner;

class DNA {    
public static void main(String[] args) 
{
    System.out.println("Please input a DNA sequence: ");

    Scanner read = new Scanner(System.in);
    String input = read.next();               

    String reverse="";
    StringBuilder sb = new StringBuilder();
    for(int i = input.length() - 1; i >= 0; i--) {
        reverse = reverse + input.charAt(i);
    }
    for (char c: input.toCharArray()) {  // user 'reverse' to operate on reversed string
        switch (c) {
            case 'A' : sb.append('T'); break;
            case 'T' : sb.append('A'); break;
            case 'G' : sb.append('C'); break;
            case 'C' : sb.append('G'); break;
            default : sb.append(""); break; // handle you're exceptions here
        }
    }
    System.out.println("x: " + sb);

    System.out.println("Here is the reversed sequence: ");
    System.out.println(reverse);

    read.close();
}}

好吧, switch-case是一种映射技术,它将 map 您的case (作为关键)及其值。 在这种情况下:我将 'A' 替换为 'T',其中字符串包含 'A' 通过附加到StringBuilder (以创建新字符串)然后break; 这是仅用于单次执行的强制性语句。 并且 default 关键字是用于default case ,这意味着如果所有案例都不满足执行,则调用default案例,如果没有案例,条件匹配,您可以默认执行您想做的任何事情。 好吧,对于您的最后一个问题,如果问题陈述了某种模式,您可以将其设为通用; 如果不是你,不幸的是必须手动完成。 快乐编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM