【发布时间】:2017-09-25 22:24:02
【问题描述】:
我对编程很陌生,我正在编写这段代码来计算一个字符串(长度)到我遇到空格时的某个点。目的是 - 当用户输入他/她的姓名和姓氏时,程序应该将姓名与姓氏分开,并计算姓名(和姓氏)中有多少个字母/字符。
如果我输入两个用空格分隔的字符串(姓名和姓氏),我的代码似乎无法到达/执行“if 语句”(输出:你的名字是:(空格),它有0个字母。但是,如果我只输入一个字符串,if-statement,它就会被执行。
我做错了什么?
我的示例代码:
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();
}
【问题讨论】:
-
String::indexOf 可能会有所帮助。
-
嗨,但我使用的是字符串对象的 indexOf。你指的是哪一个?
-
@user2478398 那是什么语言?因为它不是 java,看起来像 c++
-
@MasterYoda 这显然是 Java。
System.out.println单独告诉我们。 -
x<=nameAndSurname.length()-1 == x < nameAndSurname.length()
标签: java