【发布时间】:2018-09-08 18:53:00
【问题描述】:
我一直在尝试制作一个程序,要求用户输入一个只有一个空格的句子,一旦他们这样做,我的循环应该遍历字符串并找到一个空格,然后取用户的名字和姓氏。唯一的问题是我的循环没有看到空白,它永远不会进入 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() );*
这是我的程序的返回:
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
【问题讨论】:
-
indexOf()不需要在循环内。这是作业吗?是否允许使用indexOf()之类的字符串方法?如果您需要自己编写循环,我认为不允许使用indexOf()。 -
您显示的代码和输出根本不适合。例如,
La chaîne contient : 9 caractères打印在哪里?请:编程就是关心所有细节。除非您提供明确、正确的minimal reproducible example,否则我们无法为您提供帮助! -
字符串比较应该使用
.equals()而不是==。 -
@SamLittlefair 是比较字符串或字符的 OP 吗?
-
如果你想写一个循环,那么你会使用 charAt(...) 来测试每个字符的空格。否则 indexOf(...) 将只返回第一个空格的索引,因此不需要循环。
标签: java string loops for-loop charat