现在尝试弄清楚如何向name.startsWith添加多个搜索。 这样我就可以找到添加了搜索a,e,i,o和u的元素。而不只是" a"。
"创建一个名为printFizzBuzz()的方法。此方法应遍历集合,并打印出元素(每行上的每个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);
}
}
}
}
答案 0 :(得分:1)
您应该为此添加constructor(
private firebaseAuth: AngularFireAuth,
) {
this.firebaseAuth.authState.subscribe(user => {
this.authState = user;
this.isLoading$.next(false);
});
语句。如果else
和if
中的所有条件都失败,则只会执行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");
}
}
}