zoukankan      html  css  js  c++  java
  • 字符串的案例代码

    字符串的案例
      A:模拟用户登录
      B:字符串的遍历
      C:统计字符串中大写、小写及数字字符的个数
      D:把字符串的首字母转成大写,其他转成小写
      E:把int数组拼接成一个指定格式的字符串输出
      F:字符串反转
      G:统计大串中小串出现的次数

    A:模拟用户登录

     1 package cn.itcast_03;
     2 
     3 import java.util.Scanner;
     4 
     5 /*
     6  * 模拟登录,给三次机会,并提示还有几次。如果登录成功,就可以玩猜数字小游戏了。
     7  * 
     8  * 分析:
     9  *         A:定义用户名和密码。已存在的。
    10  *         B:键盘录入用户名和密码。
    11  *         C:比较用户名和密码。
    12  *             如果都相同,则登录成功
    13  *             如果有一个不同,则登录失败
    14  *         D:给三次机会,用循环改进,最好用for循环。
    15  */
    16 public class StringTest2 {
    17     public static void main(String[] args) {
    18         // 定义用户名和密码。已存在的。
    19         String username = "admin";
    20         String password = "admin";
    21 
    22         // 给三次机会,用循环改进,最好用for循环。
    23         for (int x = 0; x < 3; x++) {
    24             // x=0,1,2
    25             // 键盘录入用户名和密码。
    26             Scanner sc = new Scanner(System.in);
    27             System.out.println("请输入用户名:");
    28             String name = sc.nextLine();
    29             System.out.println("请输入密码:");
    30             String pwd = sc.nextLine();
    31 
    32             // 比较用户名和密码。
    33             if (name.equals(username) && pwd.equals(password)) {
    34                 // 如果都相同,则登录成功
    35                 System.out.println("登录成功,开始玩游戏");
    36                 //猜数字游戏
    37                 GuessNumberGame.start();
    38                 break;
    39             } else {
    40                 // 如果有一个不同,则登录失败
    41                 // 2,1,0
    42                 // 如果是第0次,应该换一种提示
    43                 if ((2 - x) == 0) {
    44                     System.out.println("帐号被锁定,请与班长联系");
    45                 } else {
    46                     System.out.println("登录失败,你还有" + (2 - x) + "次机会");
    47                 }
    48             }
    49         }
    50     }
    51     
    52 }

    B:字符串的遍历

     1 package cn.itcast_04;
     2 
     3 /*
     4  * 需求:遍历获取字符串中的每一个字符
     5  * 
     6  * 分析:
     7  *         A:如何能够拿到每一个字符呢?
     8  *             char charAt(int index)
     9  *         B:我怎么知道字符到底有多少个呢?
    10  *             int length()
    11  */
    12 public class StringTest {
    13     public static void main(String[] args) {
    14         // 定义字符串
    15         String s = "helloworld";
    16 
    17         // 原始版本
    18         // System.out.println(s.charAt(0));
    19         // System.out.println(s.charAt(1));
    20         // System.out.println(s.charAt(2));
    21         // System.out.println(s.charAt(3));
    22         // System.out.println(s.charAt(4));
    23         // System.out.println(s.charAt(5));
    24         // System.out.println(s.charAt(6));
    25         // System.out.println(s.charAt(7));
    26         // System.out.println(s.charAt(8));
    27         // System.out.println(s.charAt(9));
    28 
    29         // 只需要我们从0取到9
    30         // for (int x = 0; x < 10; x++) {
    31         // System.out.println(s.charAt(x));
    32         // }
    33 
    34         // 如果长度特别长,我不可能去数,所以我们要用字符串的求长度功能。
    35         for (int x = 0; x < s.length(); x++) {
    36             // char ch = s.charAt(x);
    37             // System.out.println(ch);
    38             // 仅仅是输出,我就直接输出了。
    39             System.out.println(s.charAt(x));
    40         }
    41     }
    42 }

    C:统计字符串中大写、小写及数字字符的个数

     1 package cn.itcast_04;
     2 
     3 /*
     4  * 需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
     5  * 举例:
     6  *         "Hello123World"
     7  * 结果:
     8  *         大写字符:2个
     9  *         小写字符:8个
    10  *         数字字符:3个
    11  * 
    12  * 分析:
    13  *         前提:字符串要存在。
    14  *         A:定义三个统计变量
    15  *             bigCount = 0
    16  *             smallCount = 0
    17  *             numberCount = 0
    18  *         B:遍历字符串,得到每一个字符。
    19  *             length()和charAt()结合
    20  *         C:判断该字符到底是属于那种类型的?
    21  *             大:bigCount++
    22  *             小:smallCount++
    23  *             数字:numberCount++
    24  * 
    25  *             这道题目的难点就是如何判断某个字符是大的,还是小的,还是数字的?
    26  *             ASCII码表:
    27  *                 0    48
    28  *                 A    65
    29  *                 a    97
    30  *             虽然,我们按照数字的这种比较是可以的,但是想多了,有比这还简单的
    31  *                 char ch = s.charAt(x);
    32  * 
    33  *                 if(ch>='0' && ch<='9') numberCount++
    34  *                 if(ch>='a' && ch<='z') smallCount++
    35  *                 if(ch>='A' && ch<='Z') bigCount++
    36  *        D:输出结果。
    37  *
    38  * 练习:把给定字符串的方式,改进为键盘录入字符串的方式。
    39  */
    40 public class StringTest2 {
    41     public static void main(String[] args) {
    42         // 定义一个字符串
    43         String s = "Hello123World";
    44 
    45         // 定义三个统计变量
    46         int bigCount = 0;
    47         int smallCount = 0;
    48         int numberCount = 0;
    49 
    50         // 遍历字符串,得到每一个字符。
    51         for (int x = 0; x < s.length(); x++) {
    52             char ch = s.charAt(x);
    53 
    54             // 判断该字符到底是属于那种类型的
    55             if (ch >= 'a' && ch <= 'z') {
    56                 smallCount++;
    57             } else if (ch >= 'A' && ch <= 'Z') {
    58                 bigCount++;
    59             } else if (ch >= '0' && ch <= '9') {
    60                 numberCount++;
    61             }
    62         }
    63 
    64         // 输出结果。
    65         System.out.println("大写字母" + bigCount + "个");
    66         System.out.println("小写字母" + smallCount + "个");
    67         System.out.println("数字" + numberCount + "个");
    68     }
    69 }

    D:把字符串的首字母转成大写,其他转成小写

     1 package cn.itcast_05;
     2 
     3 /*
     4  * 需求:把一个字符串的首字母转成大写,其余转为小写。(只考虑英文大小写字母字符)
     5  * 举例:
     6  *         helloWORLD
     7  * 结果:
     8  *         Helloworld
     9  * 
    10  * 分析:
    11  *         A:先获取第一个字符
    12  *         B:获取除了第一个字符以外的字符
    13  *         C:把A转成大写
    14  *         D:把B转成小写
    15  *         E:C拼接D
    16  */
    17 public class StringTest {
    18     public static void main(String[] args) {
    19         // 定义一个字符串
    20         String s = "helloWORLD";
    21 
    22         // 先获取第一个字符
    23         String s1 = s.substring(0, 1);
    24         // 获取除了第一个字符以外的字符
    25         String s2 = s.substring(1);
    26         // 把A转成大写
    27         String s3 = s1.toUpperCase();
    28         // 把B转成小写
    29         String s4 = s2.toLowerCase();
    30         // C拼接D
    31         String s5 = s3.concat(s4);
    32         System.out.println(s5);
    33 
    34         // 优化后的代码
    35         // 链式编程
    36         String result = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());
    37         System.out.println(result);
    38     }
    39 }

    E:把int数组拼接成一个指定格式的字符串输出

     1 package cn.itcast_07;
     2 
     3 /*
     4  * 需求:把数组中的数据按照指定个格式拼接成一个字符串
     5  * 举例:
     6  *         int[] arr = {1,2,3};    
     7  * 输出结果:
     8  *        "[1, 2, 3]"
     9  * 分析:
    10  *         A:定义一个字符串对象,只不过内容为空
    11  *         B:先把字符串拼接一个"["
    12  *         C:遍历int数组,得到每一个元素
    13  *         D:先判断该元素是否为最后一个
    14  *             是:就直接拼接元素和"]"
    15  *             不是:就拼接元素和逗号以及空格
    16  *         E:输出拼接后的字符串
    17  * 
    18  * 把代码用功能实现。
    19  */
    20 public class StringTest2 {
    21     public static void main(String[] args) {
    22         // 前提是数组已经存在
    23         int[] arr = { 1, 2, 3 };
    24 
    25         // 写一个功能,实现结果
    26         String result = arrayToString(arr);
    27         System.out.println("最终结果是:" + result);
    28     }
    29 
    30     /*
    31      * 两个明确: 返回值类型:String 
    32      * 参数列表:int[] arr
    33      */
    34     public static String arrayToString(int[] arr) {
    35         // 定义一个字符串
    36         String s = "";
    37 
    38         // 先把字符串拼接一个"["
    39         s += "[";
    40 
    41         // 遍历int数组,得到每一个元素
    42         for (int x = 0; x < arr.length; x++) {
    43             // 先判断该元素是否为最后一个
    44             if (x == arr.length - 1) {
    45                 // 就直接拼接元素和"]"
    46                 s += arr[x];
    47                 s += "]";
    48             } else {
    49                 // 就拼接元素和逗号以及空格
    50                 s += arr[x];
    51                 s += ", ";
    52             }
    53         }
    54 
    55         return s;
    56     }
    57 }

    F:字符串反转

     1 package cn.itcast_07;
     2 
     3 import java.util.Scanner;
     4 
     5 /*
     6  * 字符串反转
     7  * 举例:键盘录入”abc”        
     8  * 输出结果:”cba”
     9  * 
    10  * 分析:
    11  *         A:键盘录入一个字符串
    12  *         B:定义一个新字符串
    13  *         C:倒着遍历字符串,得到每一个字符
    14  *             a:length()和charAt()结合
    15  *             b:把字符串转成字符数组
    16  *         D:用新字符串把每一个字符拼接起来
    17  *         E:输出新串
    18  */
    19 public class StringTest3 {
    20     public static void main(String[] args) {
    21         // 键盘录入一个字符串
    22         Scanner sc = new Scanner(System.in);
    23         System.out.println("请输入一个字符串:");
    24         String line = sc.nextLine();
    25 
    26         /*
    27         // 定义一个新字符串
    28         String result = "";
    29 
    30         // 把字符串转成字符数组
    31         char[] chs = line.toCharArray();
    32 
    33         // 倒着遍历字符串,得到每一个字符
    34         for (int x = chs.length - 1; x >= 0; x--) {
    35             // 用新字符串把每一个字符拼接起来
    36             result += chs[x];
    37         }
    38 
    39         // 输出新串
    40         System.out.println("反转后的结果是:" + result);
    41         */
    42 
    43         // 改进为功能实现
    44         String s = myReverse(line);
    45         System.out.println("实现功能后的结果是:" + s);
    46         sc.close();
    47     }
    48 
    49     /*
    50      * 两个明确: 返回值类型:String 
    51      * 参数列表:String
    52      */
    53     public static String myReverse(String s) {
    54         // 定义一个新字符串,只不过内容为空
    55         String result = "";
    56 
    57         // 把字符串转成字符数组
    58         char[] chs = s.toCharArray();
    59 
    60         // 倒着遍历字符串,得到每一个字符
    61         for (int x = chs.length - 1; x >= 0; x--) {
    62             // 用新字符串把每一个字符拼接起来
    63             result += chs[x];
    64         }
    65         return result;
    66     }
    67     
    68 }

    G:统计大串中小串出现的次数

     1 package cn.itcast_07;
     2 
     3 /*
     4  * 统计大串中小串出现的次数
     5  * 举例:
     6  *         在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
     7  * 结果:
     8  *         java出现了5次
     9  * 
    10  * 分析:
    11  *         前提:是已经知道了大串和小串。
    12  * 
    13  *         A:定义一个统计变量,初始化值是0。
    14  *         B:先在大串中查找一次小串第一次出现的位置索引。
    15  *             a:如果索引是-1,说明不存在了,就返回统计变量。
    16  *             b:如果托索引不是-1,说明存在,统计变量++。
    17  *         C:把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回得到一个新的字符串,并把该字符串的值重新赋值给大串。
    18  *         D:回到B。
    19  */
    20 public class StringTest5 {
    21     public static void main(String[] args) {
    22         // 定义大串
    23         String maxString = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
    24         // 定义小串
    25         String minString = "java";
    26 
    27         // 写功能实现
    28         int count = getCount(maxString, minString);
    29         System.out.println("java" + "在大串中出现了:" + count + "次");
    30     }
    31 
    32     /*
    33      * 两个明确: 返回值类型:int 参数列表:两个字符串
    34      */
    35     public static int getCount(String maxString, String minString) {
    36         // 定义一个统计变量,初始化值是0。
    37         int count = 0;
    38         
    39         /*
    40         // 先在大串中查找一次小串第一次出现的索引位置。
    41         int index = maxString.indexOf(minString);
    42 
    43         // 先在大串中查找一次小串第一次出现的位置。
    44         int index = maxString.indexOf(minString);
    45         // 索引不是-1,说明存在,统计变量++。
    46         while (index != -1) {
    47             count++;
    48             // 把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回得到一个新的字符串,并把该字符串的值重新赋值给大串。
    49             // int startIndex = index + minString.length();
    50             // maxString = maxString.substring(startIndex);
    51             maxString = maxString.substring(index + minString.length());
    52             // 继续查
    53             index = maxString.indexOf(minString);
    54         }*/
    55 
    56         int index;
    57         // 先查,赋值,判断
    58         while ((index = maxString.indexOf(minString)) != -1) {
    59             count++;
    60             maxString = maxString.substring(index + minString.length());
    61         }
    62 
    63         return count;
    64     }
    65 
    66 }
  • 相关阅读:
    暑期大作战第三天
    暑期大作战 第二天
    暑假作战第一天
    JDK源码学习笔记——Object
    JVM堆 栈 方法区详解
    JVM入门——JVM内存结构
    Spring Boot 1.Hello World
    Flutter Widget不刷新问题
    Flutter 根界面退出的时候(即是应用退出),不会触发deactivate/dispose方法 / 监听返回按钮
    Android Studio 3.3.1 代码提示不区分大小写
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/8481590.html
Copyright © 2011-2022 走看看