当前位置: 首页 > 知识库问答 >
问题:

替换Java最后两个字母

公良云
2023-03-14

我正在寻求帮助,我正在制定的代码,我希望它取代最后两个字母。我正在编写一个程序,它将:

  1. 将四个字母的单词替换为“FRED”
  2. 将以“ed”结尾的单词的最后两个字母替换为“id”
  3. 最后,如果单词以“di”开头,请将前两个字母替换为“id”

我对第二条规则有困难,我知道对于数字3,我可以使用replaceFirst();并使用长度作为第一条规则,但我不确定如何具体交换字符串中的最后两个字符。

以下是我目前掌握的情况:

金弗雷德;

导入java。util。扫描仪;

公共类KingFredofId2{

public static void main(String args[]) 
{
    {   
        Scanner input = new Scanner(System.in);
        String king = input.nextLine();
        String king22 = new String();
        String king23 = new String();
        
        if(king.length()==4)
        {
            System.out.println("FRED");
        }
            String myString = king.substring(Math.max(king.length() - 2, 0));
            if (myString.equals("ed")) 
        {
            king22 = king.replace("ed", "id");
            System.out.println(king22);
        }
        if(true)
        {
            king23 = king.replace("di", "id");
            System.out.println(king23);
        }
    }
}

}

我不熟悉Stack Overflow,所以如果这个问题不容易理解,请让我知道如何让我的问题更容易理解。

谢谢

共有1个答案

荀金鹏
2023-03-14

这是我能想到的解决替换最后两个字符的第二种情况的最简单的方法

import java.util.Scanner;

public class MyClass {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Enter a line or a word: ");
        String s = sc.nextLine();

        //getting the length of entered string
        int length = s.length();
        
        //initializing a new string to hold the last two characters of the entered string
        String extract = "";

        //checking if length of entered string is more than 2
        if (length > 2) {
            //extracting the last two letters
            extract = s.substring(length - 2);
            //updating the original string
            s = s.substring(0, length - 2);
        }


        //checking if the last two characters fulfil the condition for changing them
        if (extract.equalsIgnoreCase("ed")) {
            //if they do, concatenate "id" to the now updated original string
            System.out.println(s + "id");
        } else {
            //or print the originally entered string
            System.out.println(s + extract);
        }
    }
}

我相信这些评论已经给出了足够的解释,不需要进一步解释。

 类似资料:
  • 问题内容: 我有一个日期格式为201201、201202、201203等的列。 这是一个财务数据库,因此存在期间13;但是,期间12和13合并用于报告目的。 当最后两个字符为13时,如何将其替换为12? 我开始与 但是,当然,这与2013年这一年相去甚远。 感谢收到所有建议。 问题答案: 在这种情况下,您可以使用Substring: 这是否适合您,还是您需要在过去或未来几年采用更具活力的方法?

  • 每当“q”被写为我附加TextWatcher的edittext的最后一个字符时,这个“q”就会被替换为“a”。我使用: 但是,当我测试代码时,当我输入“q”时,什么也没发生。一些帮助?非常感谢。

  • 问题内容: 我想,以取代过去的字符串,它是一个,与) 假设字符串是: -Insert into dual (name,date, 转换为: -Insert into dual (name,date) 问题答案: 以下代码应将的最后一次出现替换为。 注意 如果不含,则会抛出Exception 。

  • 假设我有以下代码: 这段代码运行后,的值将为

  • 问题内容: 假设我有以下代码: 这段代码运行后,价值会 如果我以相反的顺序替换它们,则会发生类似的问题: 的值将是 我的目标是把成我怎么能做到呢? 问题答案: 使用Apache Commons StringUtils中的方法:

  • 我怎么能在Java中做到这一点呢?