如果字符串具有相同的前缀和后缀,我想删除该字符串的最后 3 个字符。例如:字符串是 "systemsys"
,它应该打印 system
。我正在尝试的输入很少:incgoogleinc
。不适用于此输入
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.nextLine();
if(str.length() > 3) {
if (str.startsWith(str.substring(0, 3)) == (str.substring(str.length()-3, str.length()-1))) {
System.out.println(str.substring(0, str.length()-3));
} else {
System.out.println(str);
}}}
不适用于不同的输入:mictestingmic
, comwebsitecom
最佳答案
if (str.startsWith(str.substring(0, 3)) == (str.substring(str.length()-3, str.length()-1))) {
str.startsWith(str.substring(0, 3))
返回一个 boolean 值(这恰好总是 true,因为您询问它是否以字符串的开头开头,它是总是如此)。
str.substring(str.length()-3, str.length()-1))
对于“mictestmic”,这将返回“mi”,因为 substring()
使用包含/排除范围。
因此,您的 if
语句的计算结果为:
if (true == "mi") {
相反,只需检查字符串是否以结尾开头:
if (str.startsWith(str.substring(str.length()-3))) {
关于java - 如果字符串具有相同的前缀和后缀,则删除字符串的最后 3 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57512145/