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

时间:2014-03-05 03:00:22

标签: java string substr

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

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

给出姓氏的前两个字母,而不是最后一个。此外,我无法使用lastname.substr(-2),因为substr由于某种原因不起作用(不确定原因,这会更容易)。

感谢您的帮助。

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

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

String lastname = console.nextLine().substring(0,2).trim().toUpperCase();
保留前两个字母的

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

5 个答案:

答案 0 :(得分:3)

因此,如果名称为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的第一个参数是开始的地方。所以我从第一个字母开始,到第二个字母结尾(不包括在内)。

你所做的是从第二个字母开始,然后一直持续到字符串的结尾。


但是,如果您只想el Michael,则可以执行以下操作:

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

答案 1 :(得分:0)

试试这个,

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

答案 2 :(得分:0)

如果您需要不同的方式,请点击此处:

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

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

String result = userInput.revert();

度过愉快的一天。

答案 3 :(得分:0)

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

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

substring(index)包含

substring(index1, index2)是包容性的,分别是独占的。

答案 4 :(得分:0)

因为String是不可变的所以当你调用subString时它不会改变lastname的值。

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