Java 试图找出如何打印某个字符串(如果该字符串包含某个第一个字符)

Java 试图找出如何打印某个字符串(如果该字符串包含某个第一个字符),java,Java,正在尝试了解如何将多个搜索添加到name.startsWith。 这样我就可以找到添加了搜索a、e、i、o和u的元素。而不仅仅是“a” 创建一个名为printFizzBuzz()的方法。此方法应在集合中循环,并打印出元素(一行中的每个字符串)。如果字符串以a、e、i、o或u开头,而不是打印字符串,则应在该行中打印“Fizz”。如果字符串以a、e、i、o或u开头,而不是打印字符串,则应打印例如,如果集合中包含名称“香蕉”、“苹果”、“橙子”、“梨”、“桃”、“猕猴桃”、“葡萄”,则打印输出看起来像

正在尝试了解如何将多个搜索添加到name.startsWith。 这样我就可以找到添加了搜索a、e、i、o和u的元素。而不仅仅是“a”

创建一个名为printFizzBuzz()的方法。此方法应在集合中循环,并打印出元素(一行中的每个字符串)。如果字符串以a、e、i、o或u开头,而不是打印字符串,则应在该行中打印“Fizz”。如果字符串以a、e、i、o或u开头,而不是打印字符串,则应打印例如,如果集合中包含名称“香蕉”、“苹果”、“橙子”、“梨”、“桃”、“猕猴桃”、“葡萄”,则打印输出看起来像:嘶嘶嘶嘶嘶嘶嘶嘶嘶嘶嘶嘶梨桃猕猴桃水果”

公共班级学名
{
私有数组列表名称;
/**
*创建名称的集合。
*/
公立学校名称()
{
名称=新的ArrayList();
}
/**
*向集合中添加名称。
*/
public void addName(字符串名称)
{
名称。添加(名称);
}
/**
*从集合中删除名称。
*/
公共void removeName(int索引)
{
如果(索引>=0&&index
您应该为此添加一个
else
语句。如果
If
else If
中的所有条件失败,则仅执行
else
部分,否则不执行

if (name.contains("a")) {
    System.out.println("Fizz");
} else if (name.contains("A")) {
    System.out.println("Buzz");
} else {
    System.out.println(name);
}
更新: 如果要求检查字符串的起始元素,则应使用
name.startsWith(“a”)

更新:

问题:
对真是太棒了!我最不需要弄清楚的是,如何在name.startsWith中添加多个字符。我试着加上“a”,“e”。但它不起作用

不。它不应该以接受单个字符串参数开始。您可以使用
操作符检查这一点

if (name.startsWith("a") || name.startsWith("e")//....rest of check)

如另一个答案所述,确实缺少
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);
    }
}

您可以尝试下面的代码片段

    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值

  • indexOf(int ch)返回字符序列中第一次出现的字符的索引 此对象,如果角色未出现,则为-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");
              }
          }
      }
      

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

      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);
      }
      
      public void findandplace(列表项){
      StringBuffer StringBuffer=新的StringBuffer();
      对于(字符串eachItem:items){
      如果(isMatchFound(每个项目,“^[AEIOU]”){
      stringBuffer.append(“Buzz”);
      stringBuffer.append(“”);
      }else if(isMatchFound(每个项目,“^[aeiou]”){
      stringBuffer.append(“Fizz”);
      stringBuffer.append(“”);
      }否则{
      stringBuffer.append(eachItem);
      stringBuffer.append(“”);
      }
      }
      System.out.println(stringBuffer);
      } 
      公共布尔值isMatchFound(字符串项、字符串模式){
      返回项目。匹配(模式);
      }
      

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

      `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)
      }`
      

      您可能必须使用
      String.valueOf(text.charAt(0))
      ,才能将其作为字符串使用

      噢,哇,您刚刚打开了我的眼睛哈哈哈!谢谢你我也刚刚意识到name.startsWith的存在,所以我现在也要试试。是的!真是太棒了!我最不需要弄清楚的是,如何在name.startsWith中添加多个字符。我试着加上“a”,“e”。但它不起作用是的,这就是我想弄明白的。我不知道如何搜索多个字母,只有一个。不幸的是,没有工作:/Just printed Apple and appleSorry有一个错误,
      indexOf
      应该检查索引>-1,而不是>0。刚刚编辑了答案。(cf.)这将检查字符串是否以aa开头,而不仅仅是a,对于apple关键字,它将失败
      `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)
      }`