Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将charAt与数组一起使用?_Java_Arrays_Charat - Fatal编程技术网

Java 如何将charAt与数组一起使用?

Java 如何将charAt与数组一起使用?,java,arrays,charat,Java,Arrays,Charat,我在用数组实现charAt时遇到了一些麻烦。我是Java初学者(我想这是我唯一的编码经验) 目标:创建一个用户输入任意字符串的程序,并在输出中记录元音的总数(区分大小写) 例如: 输入:字符 输出: a=1 A=1 e=1 import java.util.Scanner; public class HW5 { public static void main(String[] args) { String [] alphabets = {"aAbBcCdDeEfFgGhHiIjJkKlLmMn

我在用数组实现charAt时遇到了一些麻烦。我是Java初学者(我想这是我唯一的编码经验)

目标:创建一个用户输入任意字符串的程序,并在输出中记录元音的总数(区分大小写)

例如: 输入:字符 输出: a=1 A=1 e=1

import java.util.Scanner;
public class HW5 {
public static void main(String[] args) {
String [] alphabets = 
{"aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"};
String vowels = "aAeEiIoOuU";
int found = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Please enter any word: ");
String inputStr = sc.nextLine();
for(int i=0;i<alphabets.length;i++)
    {
        if(alphabets.charAt[i] == vowels)
import java.util.Scanner;
公共级HW5{
公共静态void main(字符串[]args){
字符串[]字母表=
{“AABBCCDDEEFFGGHHIIJKKLMNNOOPQQRRSSTTUUVWWXXYYZZ”};
字符串元音=“aaeeiiouu”;
int=0;
扫描仪sc=新的扫描仪(System.in);
System.out.print(“请输入任何单词:”);
字符串inputStr=sc.nextLine();

对于(int i=0;i您需要检查
inputStr
的每个字符(不知道
字母表在您的代码中是关于什么的),并查看它是否可以在
元音字符串中找到

    String vowels = "aAeEiIoOuU";
    int found = 0;
    Scanner sc = new Scanner(System.in);
    System.out.print("Please enter any word: ");
    String inputStr = sc.nextLine();
    for (int i = 0; i < inputStr.length(); i++) {
        if (vowels.indexOf(inputStr.charAt(i)) >= 0) {
            found += 1;
        }
    }
String元音=“aaeeiiouu”;
int=0;
扫描仪sc=新的扫描仪(System.in);
System.out.print(“请输入任何单词:”);
字符串inputStr=sc.nextLine();
对于(int i=0;i=0){
发现+=1;
}
}
如果您在理解方法或类时遇到困难,该选项将非常有用

尽管如此,有很多方法可以计算字符串中的元音

您的输出表明,您需要每个案例中每个元音的计数,而不仅仅是所有元音的计数。要做到这一点,您需要一个映射来跟踪

考虑一下

String input = "A string with vowels in it";
Map<Character, Integer> counts = new HashMap<≥();
for (int i = 0; i < input.length; i++) {
    char c = input.chart(i);
    if (c == 'a') {
        int tmp = counts.getOrDefault('a', 0);
        tmp++;
        counts.put('a', tmp);
    } else if (c == 'A') {
        // same logic as above for uppercase A
    } // other else if statements for e, E, i, I, o, O, u, U
}

// the map has all counts per vowel / case
String input=“包含元音的字符串”;
映射计数=新哈希映射=0){
numowels++;
}
}
//用numVowels做点什么
--

把问题分解成简单的步骤

  • 定义要查找的元音
  • 初始化计数器变量(numVowels)
  • 循环输入字符串,并根据1中定义的字符(元音)检查每个字符
  • 对于找到的每个元音,递增计数器变量
  • 公共类元音{
    公共静态void main(字符串[]args){
    Map元音=new HashMap();
    扫描仪sc=新的扫描仪(System.in);
    System.out.print(“请输入任何单词:”;/“字符”;
    字符串str=sc.nextLine();
    对于(int i=0;i
    输入:字符 输出:a=1 a=1 e=1
    我有一个很快的问题。我如何打印结果?是否是系统?out。打印(找到)你试过了吗?它对你有用吗?如果是,请考虑将答案标记为接受。
    for (Map.Entry<Character, Integer> e : counts. entrySet()) {
        System.out.println(e.getKey() + " = " + e.getValue());
    }
    
    String vowels = "AaEeIiOoUu";
    String input = "Hello World!";
    int numVowels = 0;
    for (int i = 0; i < input.length; i++) {
        char c = input.charAt(i);
        if (vowels.indexOf(c) >= 0) {
            numVowels++;
        }
    }
    
    // do something with numVowels
    
    public class Vowels {
    
    public static void main(String[] args) {
        Map<Character, Integer> vowels = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        System.out.print("Please enter any word: "); //"charActer";
        String str = sc.nextLine();
        for (int i = 0; i < str.length(); i++) {
            Character c = str.charAt(i);
            if (c == 'a'
                    || c == 'A'
                    || c == 'e'
                    || c == 'E'
                    || c == 'i'
                    || c == 'I'
                    || c == 'o'
                    || c == 'O'
                    || c == 'u'
                    || c == 'U') {
                if (vowels.containsKey(c)) {
                    vowels.put(c, vowels.get(c) + 1);
                } else {
                    vowels.put(c, 1);
                }
            }
        }
    
        for (Map.Entry<Character, Integer> entry : vowels.entrySet()) {
            System.out.print(entry.getKey() + "=" + entry.getValue() + " ");
        }
    }}
    
    Input : charActer Output : a=1 A=1 e=1