我必須做一個java實驗室,它將輸入一個句子並創建一個只包含以元音開頭的單詞的新字符串。執行簡單字符串操作的Java程序無法正常工作
實施例:
輸入:它是一個熱和潮溼的夏天。
輸出:Itisaand。
編輯:我得到的輸出是anananananan。
這是我的代碼(帶註釋)。這些方法非常簡單。我只是不知道爲什麼這不起作用。
import java.util.*;
public class Driver {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Input: ");
String input = console.nextLine();
Class strings = new Class(input);
// class has constructor for input
int beg = 0, end = 0;
for (int j = 0; j < input.length(); j++) {
if (strings.isVowel(j) && (input.charAt(j - 1) == ' ' || j == 0))
beg = j;
// isVowel finds if there is a vowel at the location
else if (strings.endWord(j))
end = j - 1;
// endWord finds if there is a space or punctuation at the location
if (beg == end - 2)
strings.findWord(beg, end);
// findWord adds a substring of input from beg to end to the answer
}
System.out.print("\nOutput: ");
strings.printAnswer();
// printAnswer prints the answer
}
}
編輯:這是我的班的代碼。
public class Class {
String input = "", answer = "";
public Class(String input1) {
input = input1;
}
public boolean isVowel(int loc) {
return (input.charAt(loc) == 'a' || input.charAt(loc) == 'e' || input.charAt(loc) == 'i'
|| input.charAt(loc) == 'o' || input.charAt(loc) == 'u');
}
public boolean endWord(int loc) {
return (input.charAt(loc) == ' ' || input.charAt(loc) == '.' || input.charAt(loc) == '?'
|| input.charAt(loc) == '!');
}
public void findWord(int beg, int end) {
answer = answer + (input.substring(beg, end));
}
public void printAnswer() {
System.out.println(answer + ".");
}
}
感謝您發佈預期的輸出,但是您的*實際*輸出是什麼? – Bucket
嗨安東尼,歡迎來到堆棧溢出。我建議你閱讀:http://stackoverflow.com/help/how-to-ask在發佈下一次(標題)之前,無需事先感謝用戶:) – bjedrzejewski
是'Class'你自己的課程?如果是這樣,將它添加到頂部的'import',因爲它可能與'java.lang.Class'混淆。 –