1144: 天空的夜色--非字符数组(Java版)

题目描述
天空非常晴朗,外面很静很静,连小虫儿的鸣叫声都能听见。天就渐渐变黑了,天空中出现了一颗颗星星,它们一闪一闪的好像在眨着眼睛又好像在向我述说着什么似的。望着,望着,我就禁不住要数星星了,一颗,两颗,三颗,四颗,五颗……数着,数着,就分不清哪些数过了,哪些还没数过。你能帮忙数清天上有几颗星星吗?

输入
有多组测试数据。每组开头有两个整数M,N(0< M,N <=100),接下来有M行N列字符。*代表星星,.代表天空。

输出
输出星星数,每组数据输出仅占一行!

样例输入
1 1
*
2 2
.
.

样例输出
1
2
提示
来源


解析:这道题目本身不难,考查的是字符串和字符直接基本的提取关系,之前有试着用字符数组做,后来发现坑太多,果断放弃,后选用下面的方法后AC:

将n视为要输入的字符串的个数,将m视为字符串的长度。

代码:

import java.util.Scanner;//引包,做题三件套之一;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);//实例化,做题三件套之二;
        while(sc.hasNext())//写一个到文件末尾结束的循环,做题三件套之三;
        {   int n=sc.nextInt();//字符串个数;
            int m=sc.nextInt();//字符串长度;
            int k=0;//累加器,星星的个数;
            for (int i = 0; i < n; i++)
            {
                String a=sc.next();//输入字符串,此处a可以复用;
                for (int j = 0; j <m; j++) {//遍历字符串;
                    char a1=a.charAt(j);//这是一个方法,将字符串a中的第j个字符取出,赋值给a1;
                    if(a1=='*') k++;
                }
            }
            System.out.println(k);
        }
    }
}

2020年2月9日初写;

你可能感兴趣的:(Java,笔记,题目)