编程练习题(二)——Java编程学习(一)字符串

习题一:给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12.字符串和子串均由用户输入

习题解析:
(1)此题需设置两个变量分别用于接收用户输入的字符串和子字符串
(2)通过str.indexOf(subStr)获取子字符串第一个字符所在位置的索引。如果查找不到子字符串,返回-1。
             import java.util.Scanner;
             public class StringPractice{
                 public static void main(String[] args){
                     Scanner s = new Scanner(System.in);//System.in程序输入;System.out程序输出
                     System.out.println("请输入字符串:");
                     String str=s.nextLine();//接收用户输入的一行字符
                     System.out.println("请输入子字符串:");
                     String subStr=s.nextLine();//接收用户输入的一行字符
                     int preStrLength=0;
                     while(true){
                         int pos=str.indexOf(subStr);
                         if(pos==-1)break;//str.indexOf(subStr)找不到子字符串,返回-1
                         System.out.println("子字符串出现的位置:"+(pos+preStrLength));
                         //截取以(查找到子字符串第一个字符位置所在的索引+子字符串的长度)为开始索引到字符串结尾范围内的子字符串
                         str=str.substring(pos+subStr.length());
                         preStrLength +=(pos+subStr.length());//获取未被截取部分的字符串长度
                     }
                 }
             }

习题二:在一个字符串中查找一个子串,计算出来这个子串在字符串中出现的次数。

习题解析:
(1)此题需设置两个变量分别用于接收用户输入的字符串和子字符串
(2)通过str.indexOf(subStr)获取子字符串第一个字符所在位置的索引。如果查找不到子字符串,返回-1。
             import java.util.Scanner;
             public class StringPractice{
                 public static void main(String[] args){
                     Scanner s = new Scanner(System.in);//System.in程序输入;System.out程序输出
                     System.out.println("请输入字符串:");
                     String str=s.nextLine();//接收用户输入的一行字符
                     System.out.println("请输入子字符串:");
                     String subStr=s.nextLine();//接收用户输入的一行字符
                     int count=0;
                     while(true){
                         int pos=str.indexOf(subStr);
                         if(pos==-1){
                             break;//str.indexOf(subStr)找不到子字符串,返回-1
                         }else{
                             count++;
                         }
                         //截取以(查找到子字符串第一个字符位置所在的索引+子字符串的长度)为开始索引到字符串结尾范围内的子字符串
                         str=str.substring(pos+subStr.length());
                     }
                     System.out.println("这个子串在字符串中出现的次数为:"+count);
                 }
             }

习题三:编写程序将 “jdk” 全部变为大写,并输出到屏幕,截取子串”DK” 并输出到屏幕

习题解析:
(1)通过s.toUpperCase()将小写字母转换为大写字母。
(2)通过str.substring(1)截取子串”DK”
             public class StringPractice{
                 public static void main(String[] args){
             	    String s="jdk";
             	    String str=s.toUpperCase();//将小写字母转换为大写字母
             	    System.out.println(str);
             	    System.out.println(str.substring(1));//截取子串”DK” 并输出到屏幕	
            	}
             }

习题四:编写程序将String类型字符串”test” 变为 “tset”。

习题解析:
(1)通过str.replace(“es”,“se”) 进行字符串替换
             public class StringPractice{
                 public static void main(String[] args){
             	    String str="test";
             	    str=str.replace("es","se");//字符串替换(区分字母的大小写)
             	    System.out.println(str);	
            	}
             }

习题五:接收用户输入的一个字符串,判断这个字符串是否对称。

习题解析:
(1)此题需设置一个变量用于接收用户输入的字符串
(2)通过str.charAt(i)获取指定位置的字符。
             import java.util.Scanner;
             public class StringPractice{
                 public static void main(String[] args){
                     Scanner s = new Scanner(System.in);//System.in程序输入;System.out程序输出
                     System.out.println("请输入一个字符串:");
                     String str=s.nextLine();//接收用户输入的一行字符
                     boolean isDui=true;
                     for(int i=0;i<=str.length()/2;i++){ //i指代索引
                         if(str.charAt(i)!=str.charAt(str.length()-i-1)){
                             isDui=false;
                             System.out.println("这个字符串不是对称的字符串!");
                             break;
                         }
                     } 
                     System.out.println("这个字符串是对称的字符串!");
                 }
             }

习题六:将一个字符串进行反转。例:”abcdefg”反转成“gfedcba”.

习题解析:

import java.util.Scanner;
public class StringPractice{
	public static void main(String[] args){
    String str="abcdefg";
    		String newStr="";
    		for(int i=str.length()-1;i>=0;i--){
    			newStr+=str.charAt(i);//利用索引取得字符组成新的字符串
    		}
    		System.out.println(newStr);
	}
}    	

习题七:随机生成4位验证码,由用户输入并验证是否输入正确,如果输入错误就生成新的验证码让用户重新输入,最多输入5次

习题解析:
(1)此题需设置一个变量用于接收用户输入的字符串
             import java.util.Scanner;
             import java.util.Random;
             public class StringPractice{
                 public static void main(String[] args){
                     Random r=new Random();
                     int code1=r.nextInt(10);//生成0-9之间的随机数
                     int code2=r.nextInt(10);//生成0-9之间的随机数
                     int code3=r.nextInt(10);//生成0-9之间的随机数
                     int code4=r.nextInt(10);//生成0-9之间的随机数
                     String vfCode=""+code1+code2+code3+code4;
                     System.out.println("验证码是"+vfCode);
                     Scanner s = new Scanner(System.in);//System.in程序输入;System.out程序输出
                     for(int i=0;i<5;i++){
                         System.out.println("请输入验证码:");
                         String str=s.nextLine();//接收用户输入的一行字符
                         if(vfCode.equals(str)){
                             System.out.println("输入正确!");
                             break;
                         }else{
                             System.out.println("输入错误!你还剩下"+(5-i-1)+"次机会!");
                         }
                     }
                 }
             }

你可能感兴趣的:(java,练习题)