Java 如何只打印斜杠前的字母/&引用;在我的节目里?

Java 如何只打印斜杠前的字母/&引用;在我的节目里?,java,string,Java,String,我有一个日期是2020年12月7日,我只想打印斜杠前12月的最后一个字母R。然后,我将把最后一封信和12月的第一封信结合起来,把它们连在一起,这样它就会说“DR”。这在理论上要容易得多 class Main { public static void main(String[] args) { String dateCod = "07/December/2020"; String firstletterLastletter= (dateCod.substring(3,4) +

我有一个日期是2020年12月7日,我只想打印斜杠前12月的最后一个字母R。然后,我将把最后一封信和12月的第一封信结合起来,把它们连在一起,这样它就会说“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);
  }
}
我试过了,但没用。我还试着用substring和lastIndexOf组合来对它进行配对,但那不起作用。我觉得我不知道自己在做什么,无力地试图通过在黑暗中投掷飞镖来理解如何做某事


如何仅打印第二个斜杠前的最后一个字母?

您可以将
replaceAll
与regex一起使用

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


您可以将
replaceAll
与regex一起使用

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

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

 String dateCod = "07/December/2020";
 String middle = dateCod.split("/")[1];
 String res = middle.charAt(0) + "" + middle.charAt(middle.length() - 1);
如果以后要将其打印为
DR
请使用
res上的
toUppercase()
方法
使用
split()
获取字符串的中间部分,然后使用
charAt()
方法获取特定索引处的字符

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

如果以后要将其打印为
DR
请使用
res

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

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);
    }
}

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

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);
    }
}

“但那是行不通的”——那么,你到底得到了什么样的结果,以及它以什么方式出乎意料?您需要向我们提供此类信息,以帮助我们了解出了什么问题。在本例中,我们可以看到出了什么问题(单参数substring方法返回索引后字符串的整个剩余部分,而不仅仅是一个字符),但是如果我们总是提供我们所拥有的所有信息,这会容易得多。“但那不起作用”-那么您得到的结果到底是什么,以及它以什么方式出乎意料?您需要向我们提供此类信息,以帮助我们了解出了什么问题。在这种情况下,我们可以看到哪里出了问题(单参数substring方法返回索引后字符串的整个剩余部分,而不仅仅是一个字符),但是如果我们总是提供我们所拥有的所有信息,就会容易得多。回答得好。我建议通过在
char
中添加一个空白的
String
来避免JS风格的类型强制效果,因为在Java中,这有点像黑客。做类似于
String.valueOf(a)+b
的事情可能比做
a+“”+b
更好。回答得好。我建议通过在
char
中添加一个空白的
String
来避免JS风格的类型强制效果,因为在Java中,这有点像黑客。执行类似于
String.valueOf(a)+b
的操作可能比执行
a+“”+b
更好。