如何在程序中以斜线“/”之前仅打印字母?

时间:2018-02-06 16:43:19

标签: java string

我有一个日期07/12月/ 2020年,我想在斜线前打印12月的最后一个字母R.然后,我将这个最后一个字母与十二月的第一个字母结合在一起,将它们连接起来,以便它说“DR”。这在理论上要容易得多......

 class Main {
 public static void main(String[] args) {

    String dateCod = "07/December/2020";
    String firstletterLastletter= (dateCod.substring(3,4) + dateCod.substring(9));
  }
}
    System.out.println(firstletterLastletter);
  }
}

我尝试了这个,但它不起作用。我也试过用子串和lastIndexOf组合来削减它,但那不行。我觉得我不知道自己在做什么,无力地试图通过在黑暗中投掷飞镖来了解如何做某事......

如何在第二个斜线前打印最后一个字母?

3 个答案:

答案 0 :(得分:4)

使用split()获取String的中间部分,然后使用charAt()方法获取特定索引处的字符。

 String dateCod = "07/December/2020";
 String middle = dateCod.split("/")[1];
 String res = middle.charAt(0) + "" + middle.charAt(middle.length() - 1);

如果您希望以后DR使用toUppercase()方法将其打印为res

答案 1 :(得分:0)

您可以将replaceAll与正则表达式

一起使用
 String result = dateCod.replaceAll(".*/(.)[^/]+(.)/[^/]*", "$1$2");// Output Dr

regex demo

答案 2 :(得分:0)

您仍然可以使用substring()获得所需内容,但关键是首先将日期字符串拆分为令牌。拆分允许您避免处理每个月名称中不同数量的字符。

public class Test
{
    public static void main(String[] args)
    {
        String s = "07/December/2020";

        String[] tokens = s.split("/");

        String month = tokens[1];

        String firstLetter = month.substring(0, 1);
        String lastLetter = month.substring(month.length() - 1);

        System.out.println(firstLetter + lastLetter);
    }
}