Java string类典型例题

文章介绍了Java程序中的基本操作,如用户输入验证(用户名和密码)、字符串处理(对称性检查、部分字符串提取、大小写转换、字符串数组操作和逆序),展示了如何使用Scanner和StringBuilder类进行数据交互和字符串操作。
摘要由CSDN通过智能技术生成

接受用户输入的用户名和密码,判断用户名和密码是否正确,允许输入次数三次。

import java.util.Scanner;
public class test {
   public static void main(String[] args){
       //设置用户名
       String rightname="mmk";
       //设置密码
       String rightpassword="1314520";
       //给了三次机会输入
       for (int i=2;i>=0;i--){
           //创建输入对象
           Scanner test1=new Scanner(System.in);
           //输出提示信息
           System.out.println("请输入用户名:");
           //输入用户名
           String username = test1.next();
           //创建输入对象
           Scanner test2=new Scanner(System.in);
           //输出提示信息
           System.out.println("请输入密码:");
           //输入秘密
           String password=test2.next();
           //使用equaals来对比用户名和密码是否正确
           if ((username.equals(rightname ))&&(password.equals(rightpassword ) )){
               System.out.println("用户名和密码输入正确,验证成功");
               //验证成功,跳出循环
               break;
 
           }else{
               //输出提示信息
               System.out.println("用户名和密码输入错误,你还有"+i+"次机会");
 
           }
       }
   }
}

模拟通讯大数据行程码屏蔽手机号的若干位,如“151****7580”。

import java.util.Scanner ;
public class test{
   public static void main(String[] args){
       Scanner scan = new Scanner(System.in);
       //输出提示信息
       System.out.println("请输入手机号码:");
       //创建输入对象
       String number=scan.next();
       //使用substring来截取字符串
       String phone3=number.substring(0,3);
       String phone4=number.substring(7);
       //输出屏蔽后的号码
       System.out.println("手机号码为:"+phone3+"****"+phone4);
 
   }
}

通过身份证号码,判断用户的个人信息,包括出生年月日、性别。并输出到控制台。(可以尝试判断出生的省份)

import java.util.Scanner;
public class test{
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入身份证号码:");
        //输入身份证号码
        String id = scan.next();;
        //省份
        String province=id.substring(0,2);
        //年
        String year=id.substring(6,10);
        //月
        String month=id.substring(10,12);
        //日
        String day=id.substring(12,14);
        //性别
        char gender =id.charAt(16);
        //将性别那位转变为int型
        int number = gender-46;
        //判断省份
        switch(province){
            case"11":
                if(number%2==0) {
 
                    System.out.println("来自北京市,是女生,出生于"+year+"年"+month+"月"+day+"日");
                }
                else{
 
                    System.out.println("来自北京市,是男生,出生于"+year+"年"+month+"月"+day+"日");
                }break;
 
            case"41":
                if(number%2==0) System.out.println("来自河南省,是女生,出生于"+year+"年"+month+"月"+day+"日");
                else{
 
                    System.out.println("来自河南省,是男生,出生于"+year+"年"+month+"月"+day+"日");
                }break;
        }
 
 
    }
}

 

接受用户输入的一个字符串,判断他们是否是对称字符串。

提示:两种方法均可

Plain Text
(1)第一种方法,利用字符串倒着遍历,for (int i = str.length()-1; i >= 0; i--)
(2)第二种方法StringBuilder reverse  (r)  反转容器的对象

	import java.util.Scanner ;
public class test{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //输出提示信息
        System.out.println("请输入一串字符串:");
        //输入字符串
        String str = scan.next();
        //设置判断标志
        int flag=0; 
        //for循环遍历字符串
        for (int i = str.length() - 1; i >= 0; i--) {
            //将字符串的第一位与最后一位比较
            if(str.charAt(i)==str.charAt(str.length() -1-i) ){
                //比对成功则继续比较下一位
                continue;
            }
            else{
                //比对不成功,flag++,跳出for循环
                flag++;
                break;
            }
        }
        //根据最后flag的值来判断是否是对称字符串
        if(flag==1){
            System.out.println("该字符串不是对称字符串");
        }
        else{
            System.out.println("该字符串是对称字符串");
        }
 
    }
}
	import java.util.Scanner ;
public class test{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //输出提示信息
        System.out.println("请输入一串字符串:");
        //输入字符串
        String str = scan.next();
        //使用链式编程反转字符串
        String res =new StringBuilder().append(str).reverse().toString();
        //比较字符串
        if(res.equals(str) ){
            System.out.println("该字符串是对称字符串");
 
        }
        else{
            System.out.println("该字符串不是对称字符串");
        }
    }
}

接受用户输入的一个字符串,打乱该字符串并输出。

提示:遍历数组,使用随机数Random类,生成随机索引,交换数组的两个值

	import java.util.Scanner ;
import java.util.Random;
public class test{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //输出提示信息
        System.out.println("请输入一串字符串:");
        //输入字符串
        String str = scan.next();
        //创建一个字符串数组,将字符串转为字符存入数组中
        char[] tempt=str.toCharArray();
        Random random=new Random();
        //遍历数组实现交换字符位置
        for (int i = 0; i < tempt.length ; i++) {
            //生成随机索引
            int ran = random.nextInt(tempt.length );
            //将生成是随机索引数与第i个字符串交换位置
            char temp=tempt[i];
            tempt[i]=tempt[ran];
            tempt[ran]=temp;
 
        }
        //将打乱的字符串数组拼为一个新的字符串
        String s=new String(tempt);
        //输出新的字符串
        System.out.println("新生成的字符串为:"+s);
 
    }
}

已知字符串“Five miles away”

按要求执行以下操作:

(1)     统计字符串中字母e出现的次数。

(2)     提取字符串away。

(3)     将字符串复制到一个字符数组Char[]str 中。

(4)     将字符串中每个单词的第一个字母变成大写,输出到控制台。

(5)     实现该字符串的逆序输出

	public class test{
    public static void main(String[] args) {
        String s="Five miles away";
        int num =0;
        //遍历字符串
        for (int i = 0; i <s.length() ; i++) {
            //统计e出现的次数
            if(s.charAt(i) =='e'){
                num++;
            }
        }
        System.out.println("字母e出现了"+ num +"次");
       //将字符串复制到数组中
        char[] str=s.toCharArray();
        System.out.println("字符串复制到数组中并输出:");
        for (int i = 0; i < str.length ; i++) {
           System.out.print(str[i]);
        }
        System.out.println();
        //使用subString截取字符串
        String s1=s.substring(11);
        System.out.println("提取的字符串:"+s1);
        StringBuilder sb=new StringBuilder();
        for(int i = 0; i < s.length(); i++) {
            if(i == 0 || s.charAt(i - 1) == ' ') {
                sb.append(Character.toUpperCase(s.charAt(i)));
            } else {
                sb.append(s.charAt(i));
            }
        }
        System.out.println("修改后的字符串为:"+sb.toString());
        //使用链式编程将字符串逆序
        String res =new StringBuilder().append(s).reverse().toString();
        //输出逆序字符串
        System.out.println("字符串逆序后为:"+res);
    }
}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值