几个星期前我开了一门java课程,今天我们收到了一份问题表,明天我们将在课堂上做。我想今晚自己动手,但唉,我被困在问题1上。
我们今天介绍了String
课程的方法,但我无法弄清楚它们中的哪一个可以使用。
所以最后这就是问题:
Q值。编写并测试一个程序,该程序将提示用户输入他们的姓名并将姓名写入屏幕。 (姓氏被解释为第一个空格后的所有内容)
到目前为止,这就是我所拥有的:
import java.util.Scanner;
public class Question1 {
public static void main(String[] args) {
String fullName;
String surname;
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your name: ");
fullName = keyboard.nextLine();
if(fullName.contains(" ")) {
// not sure what goes in here?
}
}
}
我一直在讨论上面的if语句以及String类的各种方法,如subString()
,charAt()
等,但我不知道如何找到第一个空格然后打印在第一个空格之后输出字符串。
答案 0 :(得分:4)
您可以通过使用String类的indexOf()和subString()方法来实现:例如,
public String substringAfter(String str) {
int pos = str.indexOf(" ");
if (pos == -1) {
return "";
}
return str.substring(pos + 1);
}
答案 1 :(得分:2)
您可以在评论中使用哪些内容,但也可以使用拆分方法。它需要两个参数(或一个,第二个是可选的):分隔符字符串和限制。它返回splitted Strings的String数组。例如:
String[] splitted = fullName.split(" ", 2);
现在splitted [0]是第一个名字(第一个空白区域之前的部分),splitted [1]是其余的名称。
此处有更多信息:http://docs.oracle.com/javase/8/docs/api/java/lang/String.html
通常,您可以在Java API文档中找到很多内容。
<强>更新强>
1)我误认了限制,它应该是2而不是1
为了澄清,这是测试:
public class Test
{
public static void main(String[] args)
{
String fullName = "Luiggi SecondName ThirdName NotMyLastNameYet StillNotMyLastNameCuzImaTroll";
String surname;
String[] splitted = fullName.split(" ", 2);
surname = splitted[1];
System.out.println(splitted[1]);
}
}
输出:
SecondName ThirdName NotMyLastNameYet StillNotMyLastNameCuzImaTroll
答案 2 :(得分:0)
这对您有用还是仅需要String
方法?
public static void main(String[] args) {
String fullName;
String surname;
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your name: ");
fullName = keyboard.nextLine();
if(fullName.contains(" ")) {
Scanner nameScanner = new Scanner(fullName);
String name = nameScanner.next();
surname = nameScanner.nextLine();
}
}