如何回归"是"如果字符串的第一个字母或最后一个字母是元音[aeiouAEIOU]

时间:2017-10-05 13:57:29

标签: java return substring

此代码侧重于字符串,决策[if语句]和参数传递。

到目前为止,我有一个跑步者类和用于元音的返回方法:

public class FirstLastVowel {
public static String isVowel(String letter) {

        String fl = letter.substring(0, 1);
        String LL = letter.substring(letter.length() - 1);
        String vowel = "AEIOUaeiou";
        vowel.indexOf(letter);  
        if(
}

}

import java.util.*;
import java.io.*;

public class StringRunner_Cavazos {
    public static void main(String[] args) throws IOException {
        Scanner fileIn = new Scanner(new File("firstLastVowel.dat"));

        while(fileIn.hasNext()){
            System.out.println(FirstLastVowel.isVowel(fileIn.nextLine()));
        }
    }
}

在FirstLastVowel.java中,我必须将子字符串放入变量并将它们与indexOf(元音)进行比较,这是AEIOUaeiou,而且我很难打算输入什么内容。

编辑#1:所以我更改了一些代码,删除了for循环并添加了' vowel.indexOf(letter)'现在如何查看单词是否为空并返回' no'相比之下,如果我可以拉出第一个字母和最后一个字母并返回'是'?

1 个答案:

答案 0 :(得分:2)

首先,你不需要循环:检查首字母是一次性的交易,你不需要检查超过初始字母的字母来确定单词是否以元音开头。

您使用letter.indexOf(vowel)表达式走在正确的道路上。但是,您忽略了返回值,这就是为什么您的代码没有按照您想要的方式运行的原因。它也应该是另一种方式,即vowel.indexOf(letter)

您需要检查通话结果,看是否为负数或非负数。如果第一个字母是元音,结果将是非负的;否则,结果将是负面的。

代码应按如下方式进行:

  • 查看该单词是否为空,如果
  • 则返回"no"
  • 取出单词的第一个字母,检查元音列表中的索引是否为非负数。
  • 如果索引为非负数,则返回"yes";否则,请返回"no"