java - 如何在java中反转字符串,输入是ATGC,预期输出是GCAT
问题描述
import java.io.*;
import java.util.*;
public class CandidateCode {
public static void main(String args[]) {
String input = "ATGC";
char[] temparray = input.toCharArray();
int left, right;
right = temparray.length - 2;
for (left = 0; left < right; left++, right--) {
char temp = temparray[left];
temparray[left] = temparray[right];
temparray[right] = temp;
}
for (char c : temparray)
System.out.print(c);
System.out.println();
}
}
当前输出显示为 GTAC,但我需要 GCAT 的结果。我怎么能做到这一点。请让我知道我必须进一步改变什么。我无法得到,因为我现在尝试过。
解决方案
的使用reverse()
方法StringBuilder
public static String reverse(String str) {
return new StringBuilder(str).reverse().toString();
}
for loop
从字符串的末尾开始使用
public static String reverse(String str) {
StringBuilder buf = new StringBuilder(str.length());
for (int i = str.length() - 1; i >= 0; i--)
buf.append(str.charAt(i));
return buf.toString();
}
利用streams
public static String reverse(String str) {
return IntStream.range(0, str.length())
.mapToObj(i -> String.valueOf(str.charAt(str.length() - i - 1)))
.collect(Collectors.joining());
}
char[]
与交换一起使用
public static String reverse(String str) {
char[] chars = str.toCharArray();
for(int i = 0, j = str.length() - 1; i < j; i++, j--) {
char ch = chars[i];
chars[i] = chars[j];
chars[j] = ch;
}
return new String(chars);
}
直接输出到控制台
public static void reverse(String str) {
for (int i = str.length() - 1; i >= 0; i--)
System.out.print(str.charAt(i));
System.out.println();
}
测试:
public static void main(String... args) {
System.out.println(reverse("ATGC"));
}
输出:
"ATGC" -> "CGTA"
推荐阅读
- javascript - Vue.js 表格排序 (HTML & Buefy)
- javascript - 通过 JS 清除 cookie 但 PHP 仍然检测到它
- augmented-reality - 可以为 AR.js 使用任何无边界自定义标记
- c# - 从其他表单搜索数据不起作用?
- json - 在 Swift 中使用 Campaign Monitor 的 HTTP 身份验证请求
- phaser-framework - 我应该使用 Phaser 3 还是 Phaser 2/CE?
- c++ - tensorflow 是否定义了 USE_GEMM_FOR_CONV
- python - Python - 防止子线程受到 SIGINT 信号的影响
- ruby - Ruby - 检查 API 响应参数中是否存在特定的 int
- jenkins - 无法设置环境变量“CHANGE_TITLE”的值