java - 如果字符串具有相同的前缀和后缀,则删除字符串的最后 3 个字符

标签 java string compare prefix suffix

如果字符串具有相同的前缀和后缀,我想删除该字符串的最后 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/

相关文章:

java - 尝试通过 Inline::Java 模块将 Java 内联到 Perl

java - 如何让这个程序计算用户输入单词中的元音?

php - 与 NULL 值的表比较

java - 如何比较两个文件并删除不存在的行?

java - 使用 Jongo 更新/删除多个对象

java - 查找丢失的@Test 注解

java - 使用包含重复键或值的 Map 中的值获取键

java - (Java) 将数字字符串转换为整数数组

java - 正则表达式过于笼统

java - 测试是否与 double 相等