java每日小算法(7)

/*【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为‘\n‘.  */
package test;
import java.util.ArrayList;
import java.util.List;
public class test {
     public static List<Integer> countstr(String input) {
         List<Integer> result = new ArrayList<Integer>();
         int number = 0;
         int letter = 0;
         int blank = 0;
         int other = 0;
         for(int i = 0; i<input.length(); i++)
         {
             if(input.charAt(i)>=‘0‘ && input.charAt(i)<=‘9‘)
                 number++;
             else if(input.charAt(i)>=‘a‘ && input.charAt(i)<=‘z‘)
                 letter++;
             else if(input.charAt(i)>=‘A‘ && input.charAt(i)<=‘Z‘)
                 letter++;
             else if(input.charAt(i) == ‘ ‘)
                 blank++;
             else
                 other++;
         }
         result.add(number);
         result.add(letter);
         result.add(blank);
         result.add(other);
         return result;
     }

 public static void main(String[] args) {
     long a = System.currentTimeMillis();
     String input = "234jkadbnERFGfq3 98G45nr2EG49 r85^&ERweuf34jn#$%tq8 9wfXCVu34#$%[email protected]#2";
    List<String> strname = new ArrayList<String>();
    strname.add("number");
    strname.add("letter");
    strname.add("blank");
    strname.add("other");
     for(int i = 0; i < countstr(input).size(); i++)
        System.out.println("The count of "+strname.get(i)+" in this string is "+countstr(input).get(i));
     System.out.println(System.currentTimeMillis() - a);
 }
}
The count of number in this string is 26
The count of letter in this string is 36
The count of blank in this string is 3
The count of other in this string is 11
3

java每日小算法(7),布布扣,bubuko.com

时间: 2024-12-28 05:18:54

java每日小算法(7)的相关文章

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

java每日小算法(4)

[程序4] 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. package test; import java.util.ArrayList;

java每日小算法(10)

/*[程序10]  题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? */ package test; public class test { public static void main(String[] args) { // TODO Auto-generated method stub double high = 100.0; double jump = 0.0; double sum = 0.0; for(

java每日小算法(3)

[程序3] 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位. package test; public class test { public static boolean daffodil(int num) { boolean flag

java每日小算法(6)

/*[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. */ package test; public class test { //最大公约数 public static int commonisor(int n, int m) { int max = (n>=m)?n:m; int min = (n>=m)?m:n; int r = max % min; while(r != 0) { max = min; min = r; r = max %

java每日小算法(5)

/*[程序5] 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 1.程序分析:(a>b)?a:b这是条件运算符的基本例子. */ package test; public class test { public static String grade(int num) { String result = (num>=90)?"A":(num>=60)?"B":&quo

java每日小算法(8)

/*[程序8] 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. */ package test; import java.util.Scanner; public class test { public static int sum(int number, int input) { int result = 0; int tem = number; for(int i = 0;

java每日小算法(9)

/*[程序9] 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 找出1000以内的所有完数. */ package test; import java.util.ArrayList; import java.util.List; public class test { public static boolean overnum(int number) { List<Integer> list = new ArrayList<Int

java每日小算法(1)

[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... package test; public class test { public static int recursion(int month) { if(month <= 2) return 2; else return recursion(month-1)+