首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个节目进行得怎么样?

这个节目进行得怎么样?
EN

Stack Overflow用户
提问于 2011-11-14 04:30:02
回答 3查看 2.5K关注 0票数 0

使用说明:

编写了一个程序,它将读取一行以句点结尾的文本,作为一个哨位值。显示文本中出现的所有字母,每行一个字母,按字母顺序排列,以及每个字母在文本中出现的次数。使用长度为26的基类型int数组,以便索引0处的元素包含as数,索引1包含bs数等。

代码语言:javascript
复制
package alphabetize;

 import java.util.*;

 public class Alphabetize 
 {

private static void number(String s) 
{
    int[] array = new int[26];
    s = s.toUpperCase();
    System.out.println(s);

    for (int i = 0; i < s.length(); ++i) 
    {
        if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') 
        {
            ++array[s.charAt(i) - 'A'];
        }
    }

    for (int i = 0; i < 26; ++i) 
    {
        System.out.println("|" + (char) ('A' + i) + "|" + array[i] + "|");
    }
}

public static void main(String[] args) 
{
    Scanner keyboard = new Scanner(System.in);
    String aString = ".";
    while (true) 
    {
        System.out.println("Please enter sentence with a period to end");
        aString = keyboard.nextLine();
        if (".".equals(aString)) 
        {
            System.exit(0);
        }
        number(aString);
    }
}
}

还有时间问题..。它似乎不像我那样工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-14 04:35:49

考虑到这是一个家庭作业,并且说明是非常具体的,您应该逐字阅读文本,而不是使用内置函数。

如果您的文本文件类似于

代码语言:javascript
复制
abcabca.

输出应该是a出现三次,b出现两次等。

所以你的阿尔法应该是

  1. 读取下一个字符
  2. 如果char是周期goto 5
  3. 如果char是空格goto 1.
  4. 如果char位于<-> z之间,则在arr0 0.25和goto 1

H 110输出arr0 0.25中更新计数器.25行<代码>H 211G 212

票数 1
EN

Stack Overflow用户

发布于 2011-11-14 04:41:29

  1. ,您必须检查句号是否在结束时。所以最后一个角色应该是'.‘。然后,
  2. 取最后一个'.‘之前的字符串长度。用于计数部分的
  3. 创建一个数组,如u所做的: int [] name =新的int26,其中从0、25开始的每个索引对应于'a‘直到'z'.

现在,您将字符串字符放在一个循环中,并必须检查该字符是什么样的:

代码语言:javascript
复制
if its a 'a' : increase the value at index 0 by 1. 
if its a 'd' : increase the value at index 3 by 1. 

就像聪明一样。

稍后,您将使用a,z以及0到25之间的索引显示整个数组。

建议:如果不需要使用数组,并且可以使用任何其他数据结构,则可以非常容易地在HashMap中实现相同的数据结构。通过保持'a','z‘作为键,计数作为相应的值。然后检索和显示这些值也会更容易。

票数 0
EN

Stack Overflow用户

发布于 2011-11-14 04:45:58

在读取输入行后,需要一个int数组(例如,int[] counts = new int[26];),在循环中逐字符检查它。如果字符不是句点,则增加计数数组的适当元素。(如果字符为a,则增量counts[0];如果是b、增量counts[1];等等:您可以从字符中减去a以获得适当的索引。)找到句点时,退出循环并打印结果(可能使用第二个循环)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8117352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档