java_1125

1。从键盘输入一个字符串
   编写一个程序,判断输出一个字符串中大写英文字母数,和小写英文字母数,和其他非英文字母数
2.
编写一个方法,返回一个double类型的二维数组,数组中的元素通过解析字符串参数获得,如字符串参数为“1,2;3,4,5;6,7,8;9”的参数

 

题1、

源代码如下:

package org.jsoft.test;

import java.util.Scanner;

public class Test_2 {

    static int countUpperLutter(String s) {// 判断字符串中大写字母的个数
        int count1 = 0;
        char b[] = s.toCharArray();// 将此字符串转换为一个新的字符数组,这个新分配的字符数组的长度是此字符串的长度
        for (int i = 0; i < s.length(); i++) {
            if (b[i] <= 'Z' && b[i] >= 'A') {// 通过比较字符(即为字母)的ASCII码大小来确立大写字母的位置范围
                count1++;
            }
        }
        return count1;
    }

    static int countLowerLutter(String s) {// 判断字符串中小写字母的个数
        int count2 = 0;
        char b[] = s.toCharArray();
        for (int i = 0; i < s.length(); i++) {
            if (b[i] <= 'z' && b[i] >= 'a') {
                count2++;
            }
        }
        return count2;
    }

    static int countSpacer(String s) {// 判断字符串中空格的个数
        int count3 = 0;
        char b[] = s.toCharArray();
        for (int i = 0; i < s.length(); i++) {
            if (b[i] == ' ') {// 判断其是否是空格,是空格就计数加1
                count3++;
            } else {
                continue;// 此处多余
            }
        }
        return count3;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请您输入一段字符串:");
        String s = in.nextLine();// 此处的输入,必须得为nextLine(),即为读取正行的输入,否则,将无法读取空格以及空格之后的数据
        System.out.println("字符串中大写字母数:");
        int countA = countUpperLutter(s);
        System.out.println(countA);
        System.out.println("字符串中小写字母数:");
        int countB = countLowerLutter(s);
        System.out.println(countB);
        System.out.println("字符串中空格数:");
        int countS = countSpacer(s);
        System.out.println(countS);
        System.out.println("剩余的其他非英文字母数:");
        System.out.println(s.length() - countA - countB - countS);// 剩余的其他非英语字母数,用字符串的长度减去先前所有已经统计完的总和就为所求
        
    }

}

 

执行效果如下:

174757_yqKi_3715016.png

 

题2、方法一:

源代码如下:

package org.jsoft.test;

import java.util.Scanner;

public class Test_4 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s1 = "1,2;3,4,5;6,7,8;9";
        String s2[] = s1.split(";");// 第一次切割,用s2[]保存
        String s3[][] = new String[s2.length][];// 创建完全切割后所构成的String数组的第一维(行数)大小
        double d[][] = new double[s2.length][];// 创建同s3的double数组
        String[] s4;// 引用类型,可以先声明,并不赋值

        for (int i = 0; i < s2.length; i++) {// 第一次循环
            s4 = s2[i].split(",");// 对s2中的数组的元素进行二次切割并用s4储存
            s3[i] = new String[s4.length];// 设置s3中第一维数组的大小(第一行的长度大小)
            d[i] = new double[s4.length];// 同s3
            for (int j = 0; j < s4.length; j++) {// 第二次循环
                s3[i][j] = s4[j];// 对每一行的数组赋值,第二次切割后的赋值,赋值到每一行(每一维)
                d[i][j] = (double) Integer.parseInt(s3[i][j]);// 将String数组赋给double数组,同时对数据类型进行转换
                System.out.print(" "+s3[i][j] + "  ");// 输出double数组一行的每个,输出一个元素+左右各一个空格
            }
            System.out.println('\n');// 第一层循环完后输出换行
        }

    }

}

 

 

执行效果如下:

194220_027p_3715016.png

 

方法二:

源代码如下:

package org.jsoft.test;

public class Test_5 {

    static double[][] deal(String s, String regex1, String regex2) {// 传入需要切割的数组,以及切割符号字符串
        String[] s2 = s.split(regex1);// 第一次切割,切割regex1,并使用String数组s2进行保存结果
        double[][] d1 = new double[s2.length][];// 切割后产生的段数,即为即将导入的二维数组的第一维的个数(即为行数)
        for (int i = 0; i < s2.length; i++) {// 第一层循环
            String[] s3 = s2[i].split(regex2);// 进行第二次切割,此次切割后产生的为具体每个元素,使用String数组s3进行保存
            d1[i] = new double[s3.length];// 将切割产生的元素个数同时对对应的行数的中的元素个数(即为列数)进行初始化空间
            for (int j = 0; j < s3.length; j++) {
                d1[i][j] = (double) Integer.parseInt((s3[j]));// 对对应每行的元素进行具体的对应的赋值
            }
        }

        return d1;// 返回切割完成后生成的二维double型数组
    }

    public static void main(String[] args) {
        String s1 = "1,2;3,4,5;6,7,8;9";
        double d[][] = deal(s1, ";", ",");// 调用本类静态方法
        for (int i = 0; i < d.length; i++) {// 输出切割完成后的二维数组
            for (int j = 0; j < d[i].length; j++) {

                System.out.print(" " + d[i][j] + "");

            }

            System.out.println("");
        }

    }
}
 

执行效果图如下:

115136_mxxk_3715016.png

 

 

 

 

 

175034_J9Lz_3715016.png

源代码如下:

181457_xKfd_3715016.png

 

执行效果如下:

    181510_xH3N_3715016.png

 

转载于:https://my.oschina.net/u/3715016/blog/1579789

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值