1、
/*
在字符串中获取字符的方法
第一种方法:
String str="gaganoig";
char c=str.charAt(3);
System.out.println(c);//结果 a 这种方法得到的是char类型的数据
第二种方法:
String str="gaganoig";
String c=str.substring(3,4);
System.out.println(c);//结果 a 这种方法得到的是String类型的数据
数据:用户输入的密码
指令:提示用户输入一个密码 判断密码是否有效 输出
步骤:
1、提示用户输入一个密码
2、判断密码是否有效 有效就输出Valid password 无效就输出Invalid password
*/
import java.util.Scanner;
class ProblemFour{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入一个密码
System.out.print("请输入密码:");//cipher密码
String cipher=scanner.nextLine();
if(isCipher(cipher)){//2、判断密码是否有效 有效就输出Valid password 无效就输出Invalid password
System.out.println("是一个有效密码");
}else{
System.out.println("不是有效密码");
}
}
public static boolean isCipher(String cipher){
int i=0;//字符个数
int j=0;//数字个数
boolean k=false;//存返回值
while(true){
char c=cipher.charAt(i);
if(c>='0'&&c<='9'){
j+=1;
i+=1;
}else if(c>='a'&&c<='z'||c>='A'&&c<='Z'){
i+=1;
}else{
break;
}
if(i>cipher.length()-1){
break;
}
}
if(i>=8&&j>=2){
k=true;
}
return k;
}
}
运行结果
请输入密码:12ds1221
是一个有效密码
请输入密码:123/12343d
不是有效密码
2、
/*
数据:用户输入的字符串str 用户输入的字符a 字符出现的次数
指令:提示用户输入一个字符串str 提示用户输入需要查找次数的字符a 调用方法count得到str中a出现的次数
步骤:
1、提示用户输入字符串
2、提示用户输入字符
3、调用count方法并输出次数
*/
import java.util.Scanner;
class ProblemEight{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入字符串
System.out.print("请输入字符串:");
String str=scanner.nextLine();
//2、提示用户输入字符
System.out.print("请输入一个字符:");
String str1=scanner.nextLine();
char a=str1.charAt(0);
//3、调用couont方法并输出次数
System.out.println(str+" 中'"+a+"'出现了 "+count(str,a)+" 次" );
}
public static int count(String str,char a){
int c=0;//存字符出现次数
for(int i=0;i<=str.length()-1;i++){
char d=str.charAt(i);
if(d==a){
c+=1;
}
}
return c;
}
}
运行结果
请输入字符串:51324
请输入一个字符:3
51324 中'3'出现了' 1 次
请输入字符串:1324wdfgewr63gfsadh/'[]hj[k
请输入一个字符:[
1324wdfgewr63gfsadh/'[]hj[k 中'['出现了 2 次
3、
/*
数据:用户输入的字符串str 字符串的反序str1
指令:提示用户输入一个字符串 调用reverseStr方法 输出字符串反序
步骤:
1、提示用户输入一个字符串
2、调用reverseStr方法,并输出字符串的反序
*/
import java.util.Scanner;
class ProblemNine{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入一个字符串
System.out.print("Enter a string: ");
String str=scanner.nextLine();
System.out.println("The reversed string is "+reversedStr(str));
}
public static String reversedStr(String str){
String str1=str.substring(str.length()-1);
for(int i=str.length()-2;i>=0;i--){
str1=str1.concat(str.substring(i,i+1));
}
return str1;
}
}
运行结果
Enter a string: asdhf289779
The reversed string is 977982fhdsa
4、
/*
数据:输入的字符串 大写字母的个数
指令:提示用户输入字符串 调用函数计算字符串中大写字母的个数 输出大写字母的个数
步骤:
1、提示用户输入字符串
2、调用bigNumber()方法计算大写字母个数并输出
*/
import java.util.Scanner;
class ProblemTen{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入字符串
System.out.print("Enter a string:");
String str=scanner.nextLine();
//2、调用bigNumber()方法计算大写字母个数并输出
System.out.println("The number of uppercase is "+bigNumber(str));
}
public static int bigNumber(String str){
int a=0;
for(int i=0;i<str.length()-1;i++){
if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){
a+=1;
}
}
return a;
}
}
运行结果
Enter a string:KSJDFH34928757sdfjhjg983\'[;;[;';
The number of uppercase is 6
5、
/*
数据:用户输入的两个字符串str1和str2 最长前缀
指令:提示用户输入两个字符串 调用prefix()方法 输出最长前缀
步骤:
1、提示用户输入两个字符串
2、调用prefix()方法求最长前缀;并输出
*/
import java.util.Scanner;
class ProblemEleven{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入两个字符串
System.out.print("Enter the first string: ");
String str1=scanner.nextLine();
System.out.print("Enter the second string: ");
String str2=scanner.nextLine();
//2、调用prefix()方法求最长前缀;并输出
prefix(str1,str2);
}
public static void prefix(String str1,String str2){
if(str1.charAt(0)!=str2.charAt(0)){
System.out.println("Atlanta and Macon have no common prefix");
return;
}
int i;
for(i=1;i<str1.length()-1&&i<str2.length()-1;i++){
if(str1.charAt(i)!=str2.charAt(i)){
break;
}
}
System.out.println("The common prefix is "+str1.substring(0,i));
}
}
运行结果
Enter the first string: qwetr jiu
Enter the second string: qwetr jok;./']
The common prefix is qwetr j
6、
/*
数据:用户输入的十六进制的数 十六进制转换得到的十进制的数
指令:提示用户输入十六进制的数 调用函数hexToDecimal()计算十进制的值 输出十进制的值
步骤:
1、提示用户输入十六进制的数
2、调用函数hexToDecimal()计算十进制的值 并输出十进制的值
*/
import java.util.Scanner;
class ProblemTwelve{
public static void main(String[] args){
Scanner scanenr=new Scanner(System.in);
//1、提示用户输入十六进制的数
System.out.print("请输入十六进制的数 ");
String hex=scanenr.nextLine();
//2、调用函数hexToDecimal()计算十进制的值 并输出十进制的值
System.out.println(hex+" 的十进制值为: "+hexToDecimal(hex));
}
public static int hexToDecimal(String hex){
int a=0;
for(int i=0;i<hex.length();i++){
if(hex.charAt(i)>='0'&&hex.charAt(i)<='9'){
a=a+((int)(hex.charAt(i)-'0'))*(int)(Math.pow(16,hex.length()-1-i));
}else if(hex.charAt(i)>='A'&&hex.charAt(i)<='F'){
a=a+((int)(hex.charAt(i)-'A'+10))*(int)(Math.pow(16,hex.length()-1-i));
}
}
return a;
}
}
运行结果
请输入十六进制的数 AB8C
AB8C 的十进制值为: 43916
请输入十六进制的数 AB12
AB12 的十进制值为: 43794
来源:CSDN
作者:weixin_45887924
链接:https://blog.csdn.net/weixin_45887924/article/details/104286552