사용자가 입력 한 문자열에서 모음, 자음 및 공백의 양을 계산하는 간단한 프로그램을 작성하려고합니다. 내 do while 루프 및 if 문에 문제가 있습니다. 모음이나 자음 대신 모든 것을 공백으로 계산합니다. 제안 사항이 있으면 알려주세요! :)
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.swing.JOptionPane;
public class VowelCounter {
private static final Set<String>
vowels = new HashSet<>
(Arrays.asList("a","e","i","o","u","y"));
private static final Set<String>
cons = new HashSet<>
(Arrays.asList("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","z"));
public static void main(String[] args) {
// ---------------------------------------------- VARIABLE DECLARATIONS
int vnum = 0;
int snum = 0;
int cnum = 0;
int i = 0;
// -------------------------------------------------------------- INPUT
String input = JOptionPane.showInputDialog
("Enter name (like your university)");
// --------------------------------------------------------- PROCESSING
char result = input.charAt(i);
do{
if (vowels.contains(result))
vnum++;
if (cons.contains(result))
cnum++;
if (!input.matches(("[a-zA-Z]+")))
snum++;
i++;
}while (i < input.length());
System.out.println("There are " + vnum + " vowels, " + cnum + " consonants, and " + snum + "spaces");
당신은 발견하지 않을거야 char
A의를 Set<String>
.
루프에서 증가 i
하지만 해당 문자를 선택하지는 않습니다.
단순 else
하게 충분할 때 정규식을 불필요하게 (그리고 잘못) 사용하고 있습니다.
이 시도:
private static final Set<Character>
vowels = new HashSet<>
(Arrays.asList('a','e','i','o','u','y'));
private static final Set<Character>
cons = new HashSet<>
(Arrays.asList('b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','z'));
...
for (int i = 0; i < input.length(); i++) {
Character result = input.charAt(i);
if (vowels.contains(result))
vnum++;
else if (cons.contains(result))
cnum++;
else
snum++;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다