我创建了一个程序,该程序允许用户输入5个单词。这些字 被存储到一个字符串数组中。用户完成操作后,将显示输入以字母“ B”开头的单词的次数(小写或大写)。现在我还必须重新声明B字。
这是我到目前为止拥有的代码,用于查找输入的单词中以“ b”开头的单词
int fromIndex = 0;
int count = 0;
String words[] = new String [5];
for (int x = 0 ; x <= words.length - 1 ; x = x + 1)
{
System.out.print ("Please enter a word: ");
words [x] = kbi.readLine ();
fromIndex = 0;
words [x] = words [x].toLowerCase ();
fromIndex = words [x].indexOf ("b", fromIndex);
if (fromIndex == 0) // STARTS WITH B
{
count++;
}
}
System.out.println ("You entered " + count + " 'B' words and they were: ");
我当时想我可以使用if语句来打印b字。喜欢:
if (words.charAt(0) == "b")
{
System.out.println (words);
}
但这似乎并没有奏效,我也不认为会那样,我有点无所适从。
希望我能对此有所帮助,谢谢。
答案 0 :(得分:1)
这是因为charAt
返回char
而不是String
,所以您必须更改比较:
if (words.charAt(0) == 'b')
其他可能性是使用正则表达式"b.*"
甚至更简单-String
带有startsWith
方法,因此您可以简单地做到这一点:
if (words.startsWith("b"))
答案 1 :(得分:0)
不是String(它是String的数组),因此它没有上面使用的charAt方法。您的word数组中有5个String,所以如果要在数组中写入所有以字符'b'开头的String,则应遍历数组并打印所有以'b'开头的字符串,如下所示:
for(String str : words){
if (str.charAt(0) == 'b'){
System.out.println(str);
}
一些提示: 在Java 7中,字符串具有您可以使用的startsWith方法。如果您使用的是Java 6,请检查是否也有它:
for(String str : words){
if (str.startsWith("b", 0)){
System.out.println(str);
}