我对编程很陌生,我正在编写此代码以在遇到空格时将字符串(长度)计算为一点。目的是-当用户输入他/她的名字和姓氏时,程序应将名字和姓氏分开,并计算名字(和姓氏)中有多少个字母/字符。
如果我输入两个用空格隔开的字符串(名称和姓氏),我的代码似乎无法达到/执行“ if语句”(输出:您的名字是:(空空格),并且有0个字母)。我只输入一个字符串,即if语句,它将被执行。
我做错了什么?
我的示例代码:
public class Initials {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String nameAndSurname, nameOnly;
int c = 0, count = 0;
System.out.println("Enter your full name please:");
nameAndSurname = scan.nextLine();
int space = nameAndSurname.indexOf(' ');
for(int x = 0; x<=nameAndSurname.length()-1; x++) {
c++;
if(nameAndSurname.indexOf(x) == space) //if there is a space
{
count = c; //how many characters/letters was there before space
System.out.println(count);
}
}
nameOnly = nameAndSurname.substring(0, count);
System.out.println("Your name is: " + nameOnly.toUpperCase() + " and it has " + count + " letters");
scan.close();
}
最佳答案
为什么要打扰所有这些代码?只需跳过for循环,if (space != -1) nameOnly = nameAndSurname.substring(0,space);
如果您真的想知道字母的数量,那就是
空格+1
不需要所有这些复杂的东西。