我的循环在我的字符串中找不到空白 space
My loop can't find blank space in my String
我一直在尝试制作一个程序,要求用户输入一个只有一个空格的句子,一旦他们这样做,我的循环应该遍历字符串并找到一个空格 space,然后取用户的名字和姓氏。唯一的问题是我的循环看不到空白,它永远不会进入 if。我已经尝试了整个下午,尽管它看起来很简单,但现在它真的让我吃不消了。
这是我的代码:
Scanner sc = new Scanner(System.in);
String firstName="";
String lastName="";
String fullName="";
int cpt=0;
int cptBlank=0;
System.out.println("Entrez votre nom et prénom :");
fullName = sc.nextLine();
cpt = fullName.length();
indicateur = cpt+1;
for(int i=0; i<cpt;i++) {
if(fullName.indexOf(i) == ' ') {
cptBlank = i;
System.out.println(i);
}
System.out.println("test");
}
firstName = fullName.substring(0, cptBlank);
lastName = fullName.substring(cptBlank+1, fullName.length() - firstName.length() );*
这是我程序的return:
Entrez votre nom et prénom :
jean jean
bla
bla
bla
bla
bla
bla
bla
bla
bla
La chaîne contient : 9 caractères
9
Your full name is : jean jean
Votre prénom est :
Votre nom est : ean jean
如果你不介意我已经重写了你的代码,不知道你是否会喜欢它,但就在这里:
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
String firstName="";
String lastName="";
String fullName="";
String names[] = new String[2];
System.out.println("Entrez votre nom et prénom :");
fullName = sc.nextLine();
names = fullName.split(" ");
firstName = names[0];
lastName = names[1];
System.out.println("Full name: "+fullName+" First name :"+firstName+" Last Name :"+lastName);
}
我在空白处拆分了输入字符串 space 并收集了名字和姓氏。您不需要任何循环来执行此操作。
如果我理解正确,您正在尝试将全名作为输入并将其分成两个变量,因此请尝试我使用 class 为您编写的示例代码,称为 String Tokenizer,其主要目的是采用一个字符串和一个分隔符,并在切割该字符串后输出标记。
String Fullname , Firstname , Lastname;
Scanner input = new Scanner(System.in);
System.out.println("Enter Full Name");
Fullname = input.nextLine();
StringTokenizer st = new StringTokenizer(Fullname, " ");
Firstname = st.nextToken();
Lastname = st.nextToken();
System.out.println("First Name: "+Firstname);
System.out.println("Last Name: "+Lastname);
我一直在尝试制作一个程序,要求用户输入一个只有一个空格的句子,一旦他们这样做,我的循环应该遍历字符串并找到一个空格 space,然后取用户的名字和姓氏。唯一的问题是我的循环看不到空白,它永远不会进入 if。我已经尝试了整个下午,尽管它看起来很简单,但现在它真的让我吃不消了。
这是我的代码:
Scanner sc = new Scanner(System.in);
String firstName="";
String lastName="";
String fullName="";
int cpt=0;
int cptBlank=0;
System.out.println("Entrez votre nom et prénom :");
fullName = sc.nextLine();
cpt = fullName.length();
indicateur = cpt+1;
for(int i=0; i<cpt;i++) {
if(fullName.indexOf(i) == ' ') {
cptBlank = i;
System.out.println(i);
}
System.out.println("test");
}
firstName = fullName.substring(0, cptBlank);
lastName = fullName.substring(cptBlank+1, fullName.length() - firstName.length() );*
这是我程序的return:
Entrez votre nom et prénom :
jean jean
bla
bla
bla
bla
bla
bla
bla
bla
bla
La chaîne contient : 9 caractères
9
Your full name is : jean jean
Votre prénom est :
Votre nom est : ean jean
如果你不介意我已经重写了你的代码,不知道你是否会喜欢它,但就在这里:
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
String firstName="";
String lastName="";
String fullName="";
String names[] = new String[2];
System.out.println("Entrez votre nom et prénom :");
fullName = sc.nextLine();
names = fullName.split(" ");
firstName = names[0];
lastName = names[1];
System.out.println("Full name: "+fullName+" First name :"+firstName+" Last Name :"+lastName);
}
我在空白处拆分了输入字符串 space 并收集了名字和姓氏。您不需要任何循环来执行此操作。
如果我理解正确,您正在尝试将全名作为输入并将其分成两个变量,因此请尝试我使用 class 为您编写的示例代码,称为 String Tokenizer,其主要目的是采用一个字符串和一个分隔符,并在切割该字符串后输出标记。
String Fullname , Firstname , Lastname;
Scanner input = new Scanner(System.in);
System.out.println("Enter Full Name");
Fullname = input.nextLine();
StringTokenizer st = new StringTokenizer(Fullname, " ");
Firstname = st.nextToken();
Lastname = st.nextToken();
System.out.println("First Name: "+Firstname);
System.out.println("Last Name: "+Lastname);