![](/img/trans.png)
[英]Printing the frequency of of characters in a user inputted string using ASCII (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.