首页 > 其他分享 >字符串相关知识与练习

字符串相关知识与练习

时间:2024-04-02 22:58:05浏览次数:22  
标签:知识 String 练习 System str 字符串 public out

字符串(String):是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象来处理。

程序中需要用到的字符串可以分为两大类:

String类:创建之后不会再做修改和变动的字符串常量;
StringBuffer类:创建之后允许再做更改和变化的字符串变量。

一:找处连续最长数字串

题目:

在字符串中找出连续最长数字串,返回这个串的长度,并打印这个最长数字串。

例如:abcd12345cd125se123456789,返回9,打印出123456789

public class String_test01 {
    public static void main(String[] args) {
        String str = "abcd12345cd125se123456789";
        //去掉前面的字母
        str = str.replaceAll("^[a-zA-Z]+", "");

        //[a-zA-Z]表示字母的范围
        //+表示一次或多次

        String[] arr1 = str.split("[a-zA-Z]+");

        String max = "";

        //增强for循环
        for(String s1 : arr1){
            if(s1.length() > max.length()){
                max = s1;
            }
        }
        System.out.println("最长的数字串为:"+max+",该数字串长度为:"+max.length());
    }
}

 二:去掉字符串两端的空格

实现去除字符串两端的空格:

方法一:使用String 的API trim()(弊端:用API方法,不会去除中间的方法)

public class String_test02 {
    public static void main(String[] args) {
        //1.使用String API trim()
        String str = "   abc  9 ";
        String s = str.trim();
        System.out.println("去除后的字符串为:"+s);
    }
}

//打印结果为:abc  9 (注意:用API方法,不会去除中间的方法)

方法二:

public class String_test02 {
    public static void main(String[] args) {
        String str = "   abc  9  ";
        //将字符串传递过去
        System.out.println(MyString2(str));
    }


    public static String MyString3(String str){
        //利用正则表达式
        //^表示开头    \s表示  空白符   *表示0次或多次     |表示或者    $表示结尾
        return str.replaceAll("(^\\s*)|(\\s*$)", "");
    }

    public static String MyString2(String str){
        while (str.startsWith(" ")){
            str = str.replace(" ","");
        }
        while (str.endsWith(" ")){
            str = str.substring(0,str.length()-1);
        }
        return  str;
    }


    //判断字符串的前后是否有空格
    public static String MyString(String str){
        char[] arr = str.toCharArray();//将此字符串转换为一个新的字符数组
        int start = 0;
        for (int i = start; i < str.length(); i++) {
            if(arr[i] == ' ' ){
                start++;
            }else {
                break;
            }
        }

        int end = arr.length-1;
        for (int i = end; i >= 0; i--) {
            if(arr[i]==' '){
                end--;
            }else {
                break;
            }
        }
        String result = str.substring(start,end+1);
        return result;
    }
}
//打印结果:abc9

三:字符串反转

将字符串中指定部分进行反转。比如将“abcdefgho”实现部分反转,结果为”abfedcgho”

public class String_test03 {
    public static void main(String[] args) {
        //指定字符串反转
        String str = "abcdefgho";
        System.out.println(res1(str,2,5));
        System.out.println(res2(str,2,5));

    }

    public static String res1(String str,int start,int end){
        char[] array = str.toCharArray();//将此字符串转化为一个新的字符串
        for(int i=start,j=end;i<j;i++,j--){
            char temp = array[i];
            array[i]=array[j];
            array[j]=temp;
        }
        String s= new String(array);
        return s;
    }

    public static String res2(String str,int start,int end){
        String ligft = str.substring(0,start);
        String midle = str.substring(start,end+1);
        String night = str.substring(end+1);
        return ligft+new StringBuffer(midle).reverse()+night;
    }
}

用的API方法:

四:QQ格式验证

  • 键盘录入QQ号码,验证格式的正确性。

    • 必须是5—12位数字。

    • 0不能开头。

 

import java.util.Scanner;
public class String_test04 {
    public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.print("请输入qq号码:");
                String qq = sc.next();

                System.out.print("这个qq号是否正确:");
                if(qq.matches("[1-9][0-9]{4,11}+")){
                    System.out.println(true);
                }else{
                    System.out.println(false);
                }
                input.close();
    }
}

五:判断回文字符串

  • 如果一个字符串,从前向后读和从后向前读,都是一个字符串,称为回文串,比如mom,dad,noon。

 方法一:

public class String_test05 {
    public static void main(String[] args) {
            String str = "noon";
            System.out.println(str);
            StringBuilder s = new StringBuilder(str);
            String string = s.reverse().toString();
            System.out.print("回文数:");
            if(str.equals(string)){
                System.out.println(true);
            }else{
                System.out.println(false);
            }
    }
}

 方法二:

public class String_test05 {
    public static void main(String[] args) {
            String str = "noon";
            System.out.println(str);
            char[] arr = str.toCharArray();
            boolean flag = true;
            for (int left = 0,right=arr.length-1; left <=right; left++,right--) {
                if(arr[left] != arr[right]){
                    flag = false;
                    break;
                }
            }
            System.out.print("回文数:");
            if(flag){
                System.out.println(true);
            }else{
                System.out.println(false);
            }
        }
    }

本文先简单的使用了五道字符串例题,实现了String一些基本的API使用方法,如果对你有帮助的话,点赞+关注哦,我会持续更新有关字符产的习题的!!!

标签:知识,String,练习,System,str,字符串,public,out
From: https://blog.csdn.net/2301_76613040/article/details/137210464

相关文章

  • mongodb连接字符串
    mongodb://localhost:27017mongodb://root:123456@localhost:27017/testdb?authSource=admin1、连接本地数据库服务器,端口是默认的。mongodb://localhost2、使用用户名fred,密码foobar登录localhost的admin数据库。mongodb://fred:foobar@localhost3、使用用户名fred,密码fo......
  • 【知识点】Java代理实现方式
    Java代理的几种实现方式静态代理通过创建一个代理类来控制对目标对象的访问(也就是手动编写一个代理类)。静态代理的优点是易于理解和实现,缺点是每个接口都需要定义一个代理类,而且功能较弱。动态代理动态代理分两种,Proxy接口代理和CGLib代理接口代理Proxy代理是JDK内置代理......
  • 【爬虫】第一章-Web基础知识
    目录HTML标签分类空标签/单标签闭合标签/双标签块级元素内联元素(行内元素)几种主要网页编码Unicode(统一码、万国码、单一码)UTF-8GB2312GBKHTML标签分类空标签/单标签1)<meta/>元信息2)<img/>图片标签3)<br/>换行标签4)<hr/>水平线5)<link/>引入标签6)<base......
  • Transformer学习-最简DEMO实现字符串转置
    Transformer学习-最简DEMO实现字符串转置一.代码二.参考三.输出背景:调试AI加速卡在Pytorch训练时的精度问题,搭建了一个简单的Transformer,设置随机种子,保证每次重训练loss完全一致,可以直接对比各算子的计算误差一.代码importosimportrandomimportnumpya......
  • 07字符串内置方法_列表的内置方法_列表操作_字典的内置方法
    【一】字符串内置方法【1】find方法name="dreamHello"#默认是从左向右找并且返回当前字符在字符串内部的索引坐标print(name.find('d'))#0#默认只能找一次,找到了就不会再找下去了print(name.find('e'))#2#可以指定寻找的区间print(name.find('e',5,-1))#7......
  • Git相关知识
    一、偏理论性知识1.什么是git?他的主要特点是什么?Git是一种分布式版本控制系统,用于追踪和管理文件的变化。①它具有分布式的特点,使每个开发者都有完整的代码仓库副本,可以在本地进行工作,无需依赖中央服务器。②并且Git通过对文件和内容进行快速哈西计算来实现高效......
  • 【蓝桥杯】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母
    【问题描述】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2,...Z→26。这样一个字符串就能被转化成一个数字序列:比如ABCXYZ→123242526。现在给定一个转换后的数字序列,小明想还原出原本的......
  • 蓝桥杯备考随手记: 字符串转换
    在Java中,字符串转换是指将一个数据类型的变量转换成字符串类型的操作。字符串转换可以通过以下几种方式实现:使用String类的valueOf()方法:该方法可以将任意数据类型转换成字符串类型。例如:intnum=10;Stringstr=String.valueOf(num);该方法还可以用于将字符数组转换......
  • 全量知识系统 OO技术探讨 (Q&A-百度AI)
    Q1.我们前面刚刚讨论了全量知识系统程序详细设计之“AI操作系统”,但是感觉有问题。为了澄清,我觉得有必要先澄清几组概念。先从“scope、context,range”开始吧A1. 概念解析:Scope,+Context,+Range当然,很高兴你对这些概念有所思考,我们一起来澄清一下。1.**Scope(范围)**:  ......
  • 全量知识系统 程序详细设计之“ AI操作系统” (百度搜索的Q&A)
    Q1. 今天讨论的题目是:全量知识系统程序详细设计之“AI操作系统”..本篇是基于前面的文章给出的系统核心(一个恰当的组织)之上的一个扩展,并在此基础上给出整个全量知识系统(以下简称“全知系统”)程序详细设计大纲全量知识系统(全知系统)程序详细设计大纲一、引言在前期文章中,......