标签:java源代码 分类统计字符和数字 统计一个单词出现的次数 任意行数杨辉三角打印 java基础编程
一、描述
题目1:统计输入的一段字符串,分别统计这个字符串中大小写字母的个数,以及数字出现的次数。
第一种方法使用Character封装类的方法:isLowerCase(),isUpperCase(),isDigit()判断是否是该类字符, 第二种方法是直接使用char字符范围比较来统计。
题目2:用户输入一串待统计的字符串,然后输入用户想要统计的某个单词或者字符的次数。
比如我输入如下字符串:fdhiaojavajidaoijdjava
我要统计其中的java字符串的个数。
解题思路:传入待统计字符串str,以及需要统计的单词key,然后利用java自带的indexOf()找到首次出现该单词的位置,
统计次数加1,并把前面统计过的字符串截去,在剩下的字段中匹配。
题目3:打印任意行数的杨辉三角,如下所示为8行的杨辉三角。
解题思路:杨辉三角主对角线和第一列数字全为1,除此之外当前数字是上方数字+上方前一个数字的和,表示为二维数组即:a[i][j]=a[i][j-1]+a[i-1][j-1]。
二、源代码
源代码1:
package com.yue.day11; import java.util.Scanner; public class StaticsStr { /** * 统计输入的一段字符串,分别统计这个字符串中大小写字母的个数,以及数字的个数 * 第一种方法:使用Character封装类的方法:isLowerCase(),isUpperCase(),isDigit()判断是否是该类字符. * 第二种方法:直接使用char字符范围比较来统计 * @param args */ public static void main(String[] args) { System.out.println("Please input a String to count the times of number,char:"); Scanner sc = new Scanner(System.in); String input = sc.next(); commonStaticStr(input); CharStaticStr(input); } private static void CharStaticStr(String input) { //使用Character封装类的:isLowerCase(),isUpperCase(),isDigit()方法. int digitCount = 0; int bigCount = 0; int smallCount = 0; char[] chArr = input.toCharArray(); for (int i = 0; i < chArr.length; i++) { char ch = chArr[i]; if (Character.isDigit(ch)) { digitCount++; } else if (Character.isLowerCase(ch)) { smallCount++; } else if (Character.isUpperCase(ch)) { bigCount++; } else { continue; } } System.out.println("方法一统计结果:number:" + digitCount + " ,bigChar:" + bigCount + " ,smallChar:" + smallCount); } private static void commonStaticStr(String input) { //使用char字符的比较来统计 int digitCount = 0; int bigCount = 0; int smallCount = 0; for (int i = 0; i < input.length(); i++) { char ch = input.charAt(i); if (ch >= '0' && ch <= '9') { digitCount++; } else if (ch >= 'a' && ch <= 'z') { smallCount++; } else if (ch >= 'A' && ch <= 'Z') { bigCount++; } else { continue; } } System.out.println("方法二统计结果:number:" + digitCount + " ,bigChar:" + bigCount + " ,smallChar:" + smallCount); } }
源代码2:
package com.yue.day11; import java.util.Scanner; public class StatisticStr { /** * 用户输入一串待统计的字符串,然后输入用户想要统计的某个单词或者字符的次数 * 比如我输入如下字符串:fdhiaojavajidaoijdjava * 我要统计其中的java字符串的个数。 * 解题思路:传入待统计字符串str,以及需要统计的单词key,然后利用java自带的indexOf()找到首次出现该单词的位置, 统计次数加1,并把前面统计过的字符串截去,在剩下的字段中匹配。 * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Please input a String:"); String str = sc.nextLine(); System.out.println("Please input the string you want to count:"); String key = sc.nextLine(); int times = statisticString(str,key); System.out.println(times); sc.close(); } private static int statisticString(String str,String key) { // 传入待统计字符串str,以及需要统计的单词key,然后利用java自带的indexOf()找到首次出现该单词的位置, //统计次数加1,并把前面统计过的字符串截去,在剩下的字段中匹配。 int times = 0; while (true) { int index = str.indexOf(key); if (index != -1) { times++; str = str.substring(index + key.length()); }else{ return times; } } } }
运行结果:
源代码3:
package com.yue.day11; import java.util.Scanner; public class YangHuiTri { /** * 打印任意行数的杨辉三角,如下所示为8行的杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 解题思路:杨辉三角主对角线和第一列数字全为1,除此之外当前数字是上方数字+上方前一个数字的和 表示为二维数组即:a[i][j]=a[i][j-1]+a[i-1][j-1] * @param args */ public static void main(String[] args) { System.out.println("请输入要打印的杨辉三角的行数(1-50):"); Scanner scanner = new Scanner(System.in); int line = scanner.nextInt(); while(line<=0||line>50){ System.out.println("您输入的数字有误,请重新输入要打印的杨辉三角的行数(1-50):"); line = scanner.nextInt(); } printYangHuiTri(line); } private static void printYangHuiTri(int line) { // 打印杨辉三角:杨辉三角主对角线和第一列数字全为1,除此之外当前数字是上方数字+上方前一个数字的和. //表示为二维数组即:a[i][j]=a[i][j-1]+a[i-1][j-1] int[][] arr = new int[line][]; for (int i = 0; i < arr.length; i++) { arr[i] = new int[i + 1]; for (int j = 0; j <= i; j++) { if (j == 0) { arr[i][j] = 1; } else if (i == j) { arr[i][j] = 1; } else { arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; } } } //调用循环遍历数组的方法 printArrayLine(arr); } private static void printArrayLine(int[][] arr) { // 循环遍历数组 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + "\t"); } System.out.println(); } } }
标签:java源代码 分类统计字符和数字 统计一个单词出现的次数 任意行数杨辉三角打印 java基础编程
原文地址:http://blog.csdn.net/tongyuehong137/article/details/45116067