繁体   English   中英

用户使用子字符串(Java)输入的字符串的最后两个字母

[英]Last two letters of a user inputted string using substring (Java)

我正在编写一个生成星球大战名字的程序。 用户输入他们的名字,姓氏,母亲的娘家姓,出生城市和第一辆汽车,然后程序给出一个星球大战名称。 我需要输入用户姓氏的最后两个字符*。 我知道我可以使用substring ,但是我什么都无法工作。 我最好的是:

lastname.substring(lastname.length() -2)

给出姓氏的前两个字母,而不是姓氏。 另外,我不能使用lastname.substr(-2)因为由于某种原因, substr无法工作(不知道为什么,这会容易得多)。

谢谢你的帮助。

*编辑:我希望我不要混淆任何人,我需要姓氏的最后两个字符。

实际上,我现在看到了我的问题:我原来的姓氏变量是

String lastname = console.nextLine().substring(0,2).trim().toUpperCase();

它保留了前两个字母,所以我得到前两个字母的原因是因为这个。 我现在知道了。 有没有办法从同一个变量中获取最后两个字母?

所以,如果名字叫Michael ,您只想要Micha吗?

尝试:

String trimmedLastName = lastName.substring(0, lastName.length() - 2);

例如:

String lastName = "Michael";
String trimmedLastName = lastName.substring(0, lastName.length() - 2);
System.out.println(trimmedLastName); // prints Micha

我的工作而您的工作不起作用的原因是, substring的第一个参数是从哪里开始 因此,我从第一个字母开始,到第二个最后一个字母(不包含)结束。

您要做的是从倒数第二个字母开始,一直到字符串结尾。


但是,如果您只想要Michael el ,可以这样做:

String lastName = "Michael";
String trimmedLastName = lastName.substring(lastName.length() - 2);
System.out.println(trimmedLastName); // prints el

试试看

lastname.substring(lastname.length() -3,lastname.length() -1);

如果您需要其他方式,请在此处:

StringBuffer myString = new StringBuffer(inputString);
myString.revert();

StringBuffer userInput = new StringBuffer(myString.subString(2));

String result = userInput.revert();

祝你今天愉快。

lastname.substring(lastname.length() - 2)应该返回最后2个字母。

lastname.substring(0, 2)返回前两个。

substring(index)包含在内

substring(index1, index2)分别是包含式和排除式的。

因为字符串是不可变的,所以当您调用subString时,它不会更改姓氏的值。

我认为您应该这样做:String genName = lastname.subString(lastname.lengh()-2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM