根据以下需求,用代码实现
1.程序运行后通过键盘录入一个字符串。要求字符串中必须包含:大写字母
2.如果录入的字符串中没有大写字母、要进行给出提示。然后程序可以继续录入字符串
3.如果录入的字符串中有大写字母。那么统计这个字符串中小写字母、大写字母、数字、其他字符出现的个数。程序结束
例如:
请输入一个字符串:
123456abc
您输入的字符串中没有大写字母。请重新输入:
ABC456ghi$%^&D
大写字母有:4个
小写字母有:3个
数字有:3个
其他字符有:4个
package Work5;
import java.util.Scanner;
public class Str{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int big=0;
int smi=0;
int num=0;
int a=0;
while (true) {
System.out.println("请输入一个字符串");
String str1 = sc.next();
char[] chars = str1.toCharArray();
if (method(chars)) {
for (int i = 0; i < chars.length; i++) {
if(chars[i]>='A'&&chars[i]<='Z'){
big++;
}else if(chars[i]>='a'&&chars[i]<='z'){
smi++;
} else if(chars[i]>='0'&&chars[i]<='9'){
num++;
}else {
a++;
}
}
break;
}else {
System.out.println("没有大写字母,请重新输入");
}
}
System.out.println("大写字母有:"+big);
System.out.println("小写字母有:"+smi);
System.out.println("数字字母有:"+num);
System.out.println("其它字母有:"+a);
}
public static boolean method(char[] arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i]>='A'&&arr[i]<='Z'){
return true;
}
}
return false;
}
}
遍历下列字符串,筛选出其中的数字和字母并按照数字在前字母在后的规则组成一个新的字符串,把组成的新字符串打印在控制台。
public class Str {
public static void main(String[] args) {
String str1="csdfsg98498gv4s4gs64gss54vsd";
char[] chars = str1.toCharArray();
String num="";
String a="";
for (int i = 0; i < chars.length; i++) {
if(chars[i]>='0'&&chars[i]<='9'){
num+=chars[i];
}
if(chars[i]>='a'&&chars[i]<='z'){
a+=chars[i];
}
请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。
package Work4;
public class Str {
public static void main(String[] args) {
String str = "打死你死打";
System.out.println(getMethod(str));
;
}
public static boolean getMethod(String str) {
StringBuilder sb = new StringBuilder(str);
String s = sb.reverse().toString();
if (str.equals(s)) {
return true;
}
return false;
}
}
自定义一个方法,让用户输入一个“QQ号码”,在方法中判断这个QQ号码是否合法。
String qq;
验证规则:
号码长度必须是5—12位数字;
首位不能是0;1-9
后面的数字 0-9
package Work4;
public class Str {
public static void main(String[] args) {
String str = "762092597";
System.out.println(isQq(str));
;
}
public static boolean isQq(String str) {
int s = str.length();
if (s < 5 || s > 12) {
return false;
}
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[0] < '1' || chars[0] > '9') {
return false;
}
}
for (int i = 1; i < chars.length; i++) {
if (chars[i] < '0' || chars[i] > '9') {
return false;
}
}
return true;
}
}
键盘输入两个字符串,一个长,一个短,求短字符串在长字符串中出现的次数。
举例:
abc字符串在abcdefgabckbsdffabc字符串中出现了 3次
replace(“abc”,"");
package Work4;
import java.util.Scanner;
public class Str{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个长的字符串");
String str2 = sc.next();
System.out.println("请输入一个短的字符串");
String str3 = sc.next();
String[] arr = str2.split(str3);
int i = arr.length - 1;
System.out.println("字符串中出现了" + i + "次");
}
}
题目6:
定义方法,获取一个包含4个字符的字符串验证码,每一位字符是随机选择的字母和数字,可包含a-z,A-Z,0-9。
例如:aX3v
1 创建一个StringBuilder sb对象, 遍历a-z 遍历A-Z 遍历0-9 把每一个字符 添加到StringBuilder 对象
2 sb for循环4次,获取一个随机数(返回是0到sb的长度)作为索引
3 用sb的charAt根据索引 获取一个
package Work4;
import java.util.Random;
public class Str {
public static void main(String[] args) {
method();
}
public static void method() {
StringBuilder sb=new StringBuilder();
Random ra=new Random();
StringBuilder sb2=new StringBuilder();
for (char i = 'a'; i <= 'z'; i++) {
//添加a-z
sb.append(i);
}for (char i = 'A'; i <='Z'; i++) {
//添加A-Z
sb.append(i);
}for (int i = 0; i <=9; i++) {
//添加0-9
sb.append(i);
}
for (int i = 0; i < 4; i++) {
int num= ra.nextInt(sb.length())+1; //获取sb长度范围内的4个随机数作为索引
char c = sb.charAt(num); //根据索引将获得对应位置数据
sb2.append(c); //将获得对应位置数据添加到sb2中
}
String s = sb2.toString();
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
//遍历sb2
System.out.print(chars[i]);
}
}
}
我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。
规则为:号码为18位,不能以数字0开头,最后一位可以是数字或者大写字母X,前17位只可以是数字。
package Work4;
public class Str {
public static void main(String[] args) {
String str = "41152419980723405X";
System.out.println(method(str));
}
public static boolean method(String str) {
int s = str.length();
char[] chars = str.toCharArray();
if (s > 18 || s < 18) {
//号码不为18位,
return false;
}
for (int i = 0; i < chars.length; i++) {
if (chars[0] < '0' && chars[0] > '0') {
//不能以数字0开头
return false;
}
}
for (int i = 1; i < chars.length - 1; i++) {
if (chars[i] < '0' && chars[i] > '9') {
return false;
}
}
for (int i = 0; i < chars.length; i++) {
if (i == 17) {
if (chars[i] == 'X') {
return true;
} else if (chars[i] >= '0' && chars[i] <= '9') {
return true;
} else {
return false;
}
}
}
return true;
}
}