你如何在while循环中使用字符串然后编号字符串?

时间:2016-12-02 00:23:16

标签: java string loops while-loop

在我的编程课程简介中。我应该创建一个程序,要求用户输入他/她的名字,然后使用while循环以下列方式打印名称:

(用户输入Caroline)

  1. C
  2. 一个
  3. - [R
  4. 0
  5. I
  6. 名词
  7. ë
  8. Caroline,你的名字中有8个字母。

    - 我尝试过很多东西,但仍然无法弄明白.-- This is what I have so far

4 个答案:

答案 0 :(得分:0)

假设您正确地从STDIN获取用户输入的字符串。

您可以选择以您选择的语言执行此类操作:

  1. 查找字符串的长度
  2. 使用while循环,使用与字符串长度相关的条件,逐个字符地移动字符串
  3. 打印到字符串中每个字符的换行符
  4. 随意提问,我很乐意详细说明。到目前为止,添加一些代码示例以及您面临的问题是有用的。

答案 1 :(得分:0)

在C ++中,这将是:

#include<iostream>
#include<string>
using namespace std;
int main()
{
  int i=0;
  string s;
  cin>>s;
  while(i<s.length())
  { cout<<i+1<<"."<<cout<<s[i]<<endl;
    i++;
  }
cout<<s<<", "<<"There are "<<s.length()<<" letters in your first name.";
return 0;
}

这在Java中也非常相似,如果你期望用你选择的编程语言,你应该能够得到它。

答案 2 :(得分:0)

在main方法中试试这个:

    //Asks user name.
    System.out.println("What's your name?");

    //Instantiates scanner
    Scanner sc = new Scanner(System.in);

    //With the scanner it reads user input and save it in the variable name
    String name = sc.nextLine();

    //It is a good programming practice to close the scanner
    sc.close();

    /*The loop that for each letter of the name also prints the position
    number plus 1*/
    int i = 0;
    while (i < name.length()) {

        System.out.println(i+1 + ". " + name.charAt(i));
        i++;
    }

答案 3 :(得分:0)

根据OP分享的快照:

OP snap shot

在这里,你需要修改这一行:

System.out.println(name.charAt(i));

System.out.printf("%d. %c%n",(1+i),name.charAt(i));

另外,请更改此行:

  i++;
}}}

  i++;
}
System.out.printf("%s, there are %d letters in your first name%n",name,i));
}}