wuqingshun314159 2024-01-21 12:27 采纳率: 100%
浏览 31
已结题

java中实现getchar()

如何在java里面实现c语言中的getchar()函数,也就是可以从输入缓存区读取单个字符。

这是一个编程题
本题要求编写程序,输入10个字符,统计其中英文字母、数字字符和其他字符的个数。
输入
aZ &
09 Az
输出
letter = 4, digit = 2, other = 4
换行符也被视作一个符号

#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
    int i = 0, length, letter = 0, digital = 0, other = 0;
    char ch[100], a;
    while (i < 10)
    {
        a = getchar();
        ch[i] = a;
        i++;
        if (ch[i] == '\n') continue;
    }
    length = strlen(ch);
    i = 0;
    for (i = 0; i < 10; i++)
    {
        if (isalpha(ch[i]) != 0) letter++;
        else if (ch[i] >= '0' && ch[i] <= '9') digital++;
        else other++;
    }
    printf("letter = %d, digit = %d, other = %d", letter, digital, other);
}

请问,java如何实现getchar功能,java如何过那个输入样例

  • 写回答

7条回答 默认 最新

  • micthis 2024-01-21 14:37
    关注

    img


    代码:

    public class Test {
        public static void main(String[] args) throws Exception {
            int letter,digit,other;
            char ch;
            
            letter=digit=other=0;
            
            for(int i=0;i<10;i++)
            {
                ch=(char)System.in.read();
                if(ch=='\r') {
                    other++;
                    ch=(char)System.in.read();
                    if(ch=='\n')
                        continue;
                }
                if((ch>='a' && ch<='z') || (ch>='A' && ch<='Z'))
                    letter++;
                else if(ch>='0' && ch<='9')
                    digit++;
                else
                     other++;
            }
            System.out.printf("letter = %d, digit = %d, other = %d",letter,digit,other);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 已采纳回答 1月21日
  • 赞助了问题酬金15元 1月21日
  • 请回答用户的提问 1月21日
  • 展开全部