Java输入满足条件的字符窜,并将其返回 密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头)
2017-06-25 21:24
323 查看
package cn.itcast.XiuXiRiLianXi; /* * 作者认为本程序的重点在以下三个方面: 1. 细细品味while(true){}和break的结合 2. 细细品味自己当时是如何利用下面的语句完成"将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头)"这个条件的界定的 ((int) (mima[i]) > 90 || (int) (mima[i]) < 65 && mima[i] != ' '||mima[0]==' ') 3. 记住自己如何完成的从键盘录入一个字符窜,然后将其转换成一个字符数组的方法,语句为: String st = sc.nextLine(); char[] mima = st.toCharArray(); * * 该程序能完成的功能如下: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ============================================================= 请输入密码(友情提示:请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如"I LOVE JAVA"): 22P 输入有误,请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如"I LOVE JAVA": ooP 输入有误,请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如"I LOVE JAVA": **EE 输入有误,请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如"I LOVE JAVA": P 输入有误,请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如"I LOVE JAVA": I LOVE YOU 您输入的密码为: I LOVE YOU 程序结束!!! */ //*****************本程序出处**本程序出处**本程序出处**本程序出处**本程序出处******************** /* 从一个字符数组中挑选一些字符,最终拼成“I LOVE JAVA”打印在控制台上打印结果:I LOVE JAVA 1.定义一个返回值类型为字符数组的方法 getArr(char [] arr),在方法中完成: 1.1定义一个新的字符数组 1.2从arr数组中挑选需要的字符存在新的数组中 1.3返回新的数组 2.在主方法中定义一个字符(char)数组 arr,数组内容为26个大写英文字母。 调用getArr(char [] arr)方法得到返回的数组,循环遍历数组,打印出:I LOVE JAVA */ import java.util.Scanner; public class LianXi3_ILoveJava_GaiJinHou { public static void main(String[] args) { @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); // 创建一个字符数组arr存(A-Z)26个字母 char[] arr = new char[26]; for (int i = 0; i < arr.length; i++) { arr[i] = (char) (i + 65); } // 打印创建的字符数组arr for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); // 主要是为了换行 System.out.println("============================================================="); System.out.println("请输入密码(友情提示:请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如\"I LOVE JAVA\"):"); while (true) { // 键盘录入一个字符窜,并转换成字符数组 String st = sc.nextLine(); char[] mima = st.toCharArray(); int count = 0; for (int i = 0; i < mima.length; i++) { // 如若录入的字符串不满足要求,count++,且跳出循环,由于count进行了++,不会进入if(count==0)语句 if ((int) (mima[i]) > 90 || (int) (mima[i]) < 65 && mima[i] != ' '||mima[0]==' ') { System.out.println("输入有误,请将密码设置成包含(A-Z)或空格的形式(空格不能作为密码的开头),比如\"I LOVE JAVA\":"); count++; break; //细细品味break的用法 } } if (count == 0) { // 调用getArr方法并打印输入的目标字符数组 char[] newarr1 = getArr(arr, mima); System.out.println("您输入的密码为:"); for (int i = 0; i < newarr1.length; i++) { System.out.print(newarr1[i]); } System.out.println(); System.out.println("程序结束!!!"); break; // 理解一下break的使用,break的使用场景: switch, 循环, 不能脱离. // 这里break是跳出while(true)循环 // System.exit(0); //这种方法是可以的 } } } public static char[] getArr(char[] arr1, char[] arr2) { // char[] mubiao = { 'I', ' ', 'L', 'O', 'V', 'E', ' ', 'J', // 'A','V','A'}; int num = arr2.length; /* * 判断输入的数组是否在(A-Z)或空格中,如果在,将其从A-Z或空格中取出并赋给数组new_arr 并将其作为getArr()方法的返回值 */ char[] new_arr = new char[num]; for (int i = 0; i < arr2.length; i++) { for (int j = 0; j < arr1.length; j++) { if (arr2[i] == arr1[j]) { new_arr[i] = arr1[j]; } if (arr2[i] == ' ') { new_arr[i] = ' '; } } } return new_arr; // } } }
相关文章推荐
- 实现函数 functionFunction,调用之后满足如下条件: 1、返回值为一个函数 f 2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', ' 3、所
- 密码只能输入字母+数字不能包含特殊字符的校验规则
- 密码8到64位大小写字母+数字+字符 不能包含空格
- java生成指定的随机数并且包含大写、小写和数字,满足以上条件的返回字符串
- soap进用安全设置问题,密码字符中不能包含&
- java中前台输入查询条件中包含“’”的处理
- [Java]练习题007: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- 用条件编译实现,输入一行字符,可以用两种方式输出,一种为原文输出;另一种将字母转变成后继字母,即按密码输出
- 如何用正则表达式实现规定用户输入密码的格式为:(长度6到18个字符,不能全为重复字母,或者连续字母)
- 将BYTE[]中的字符的16进制形式作为字符串存入CString对象并返回
- ubuntu输入了正确的用户名密码但是无法登录(环境变量设置错误所以不能登录系统)
- 不能输入全角字符 全角转换为半角 去掉全角下的所有空格
- 用Java过滤掉不能作为xml内容的特殊字符
- 不能输入全角字符 全角转换为半角 去掉全角下的所有空格
- 判断是否是简单密码,不能包含相同的字符(如aaa,111),递增序列(abc,123),递减序列(cda,321)
- [Java]练习题007: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- java ---- 给输入的字符数字 添加密码状态(变成“*”)
- 输入一个EMAIL,查看是否满足要求,不能以数字和特殊符号开头,不能有特殊符号
- java----输入一个字符串,去掉字符串开头的空格和结尾的空格,若字符串中间有连续的空格,则只保留一个空格。