如果字符串包含某个第一个字符,请尝试弄清楚如何打印某个字符串

时间:2018-04-20 06:31:32

标签: java

现在尝试弄清楚如何向name.startsWith添加多个搜索。 这样我就可以找到添加了搜索a,e,i,o和u的元素。而不只是" a"。

"创建一个名为printFizzBu​​zz()的方法。此方法应遍历集合,并打印出元素(每行上的每个String)。如果String以a,e,i,o或u开头,而不是打印字符串,它应该打印" Fizz"在线上。如果字符串以A,E,I,O或U开头,而不是打印字符串,则应打印" Buzz"。例如,如果集合包含名称" banana"," Apple"," orange"," pear"," peach& #34;,"猕猴桃","葡萄",然后打印输出看起来像:Fizz Buzz Fizz梨桃猕猴桃"

 public class SchoolNames
 {
     private ArrayList<String> names;

    /**
     * Creates a collection of names.
     */
     public SchoolNames()
     {
        names = new ArrayList<>();
     }

    /**
     * Add a name to the collection.
     */
    public void addName(String Name)
    {
        names.add(Name);
    }

    /**
     * Remove a name from the collection.
     */
    public void removeName(int index)
    {
        if (index >= 0 && index < names.size()) 
        {
            names.remove(index);
            System.out.println("Name removed");
        }
        else
        {
            System.out.println("No names to remove");
        }
     }

    /**
     * Return the number of names stored in the collection.
     */
    public int getNumberOfNames()
    {
        return names.size();
    }

    public void listAllNames()
    {
        for (String name : names)
        {
            if (name.startsWith("a"))
            {
                System.out.println("Fizz");
            }
            else if (name.startsWith("A"))
            {
                System.out.println("Buzz");
            }
            else
            {
                System.out.println(name);
            }
        }
    }
}

6 个答案:

答案 0 :(得分:1)

您应该为此添加constructor( private firebaseAuth: AngularFireAuth, ) { this.firebaseAuth.authState.subscribe(user => { this.authState = user; this.isLoading$.next(false); }); 语句。如果elseif中的所有条件都失败,则只会执行else if部分,否则不会

else

<强>更新 如果需要检查字符串的start元素,那么您应该使用if (name.contains("a")) { System.out.println("Fizz"); } else if (name.contains("A")) { System.out.println("Buzz"); } else { System.out.println(name); }

进行检查

<强>更新

问题: 是!工作得非常出色!我需要弄清楚的最后一件事是如何在name.startsWith中添加多个字符。我试过添加&#34; a&#34;,&#34; e&#34;。但它不起作用

没有。它不应该开始接受单个字符串参数。您可以使用name.startsWith("a")运算符进行检查。

or

答案 1 :(得分:1)

您可以尝试使用以下代码段

    String str ="Anglo"; //sample input
    String vowelinCaps = "AEIOU";
    String vowelinSmall = "aeiou";

    if (vowelinCaps.indexOf(str.charAt(0)) >= 0)
        System.out.println("Fizz");
    else if (vowelinSmall.indexOf(str.charAt(0)) >= 0) 
        System.out.println("Buzz");
    else
        System.out.println(str);

<强>更新 -

  • char java.lang.String.charAt(int index)返回指定索引处的char值。

  • int java.lang.String.indexOf(int ch)返回字符序列中第一次出现的字符的索引 此对象,如果未出现该字符,则返回-1。

答案 2 :(得分:0)

正如另一个答案所述,确实缺少else陈述。

你也可能想避免每个字母(a,e,i ....)有一个if语句,所以你可能会这样做:

for (String name : names)
{

    char firstChar = name.charAt(0);

    if ("aeiou".indexOf(firstChar)>-1)
    {
        System.out.println("Fizz");
    }
    else if ("AEIOU".indexOf(firstChar)>-1)
    {
        System.out.println("Buzz");
    }
    else
    {
        System.out.println(name);
    }
}

答案 3 :(得分:0)

您可以使用以下正则表达式代码根据您的模式替换单词

public void findAndReplace(List<String> items) {
    StringBuffer stringBuffer = new StringBuffer();
    for(String eachItem : items) {
        if(isMatchFound(eachItem,"^[AEIOU]")) {
            stringBuffer.append("Buzz");
            stringBuffer.append(" ");
        }else if(isMatchFound(eachItem,"^[aeiou]")) {
            stringBuffer.append("Fizz");
            stringBuffer.append(" ");
        }else {
            stringBuffer.append(eachItem);
            stringBuffer.append(" ");
        }
    }
    System.out.println(stringBuffer);
} 
public Boolean isMatchFound(String item,String pattern) {
    return item.matches(pattern);
}

正则表达式: ^ [AEIOU]检查字符串在[AEIOU]数据集中的第一个(^)字符。

答案 4 :(得分:0)

您也可以尝试

public void deleteAllRow(String value){      
    db.execSQL("DELETE FROM " + TABLE_NAME+ ");
}

您可能必须使用`String lowercase = "aeiou"; String upercase = "AEIOU"; String text = "apple"; if(lowercase.contains(text.charAt(0))){ System.out.println("fuzz"); }else if(upercase.contains(text.charAt(0)))){ System.out.println("buzz"); }else{ System.out.println(text) }` 将其作为字符串

答案 5 :(得分:-1)

你的意思是这样做吗?:

public class StringTest {

    public static void main(String args[]){

        String  testString = "aatest";
        if (testString.matches("(aa|bb|cc|dd|dd).*")){
            System.out.println("true");
        }

        if(testString.startsWith("aa") || testString.startsWith("bb")){ // other conditions as well
            System.out.println("true");
        }
    }
}