[英]How can I convert certain characters of a String into a Float in 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)
对所有对重复此操作。
这是您可以尝试的代码示例:
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.