java字符串训练与学习

复制代码
package com.itheima;

import java.util.StringTokenizer;

public class 字符串训练学习 {
    public static void main(String[] args) {
        String s = new String("HelloWorld");
        System.out.println(s);
        System.out.println(s.length());
        //创建字符串
        //String s = new String("字符串")
        //用.length()方法来获取字符串长度

        //用String中equals的方法来判定两个字符串是否相同
        String str1 = new String("Hello");
        String str2 = new String("hello");
        String str3 = new String("Hello");
        System.out.println(str1.equals(str2)); //布尔类型 false
        System.out.println(str1.equals(str3)); //布尔类型 true

        //用stratsWith(s)方法查看字符串前缀是否为字符串s endsWith()方法是后缀
        String str4 = new String("own");
        String str5 = new String("os");
        String str6 = new String("n");
        System.out.println(str4.startsWith(str5));//布尔值
        System.out.println(str4.endsWith(str6));

        // 字符串调用regionMatches(int firstStart,String other,int ortherStart,int length)方法,
        // 从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子串,
        // 并将这个子串和参数other指定的一个子串进行比较,
        // 其中,other指定的子串是从参数othertStart指定的位置开始,从other中取长度为length的一个子串。
        // 如果两个子串相同该方法就返回true,否则返回false。
        String str7 = new String("Helloworld");
        boolean sign = str7.regionMatches(0, str1, 0, 5);
        System.out.println(sign);

        String strs1 = new String("hey,bro");
        String strs2 = new String("hey,bro");
        String strs3 = new String("Hey,bro");
        String strs4 = new String("heys");
        String strs6 = new String("hey");
        String strs5 = new String("o");
        boolean st = strs1.equals(strs2);
        boolean st1 = strs1.startsWith(strs4);
        boolean st2 = strs1.startsWith(strs6);
        boolean st3 = strs1.endsWith(strs5);
        System.out.println(st);
        System.out.println(st1);
        System.out.println(st2);
        System.out.println(st3);

        boolean op = strs1.regionMatches(0, strs4, 0, 4);
        System.out.println(op);
        System.out.println(strs1.length());

        /*字符串对象可以使用String类中的compareTo(String s)方法,按字典序与参数s指定的字符串比较大小。
        如果当前字符串与s相同,该方法返回值0;
        如果当前字符串对象大于s,该方法返回正值;如果小于s,该方法返回负值*/
        String er1 = new String("anle");
        String er2 = new String("aode");
        System.out.println(er1.compareTo(er2));
        //字符串的比较大小
        //字典序排列 就是按照26个字母的排列顺序 排列字符串,从比较每个字符串开头的字母,以此类推
        //例:apple , bol
        //就是先比较a和b在26字母里的排列顺序 a比b小 那就直接返回负值
        //例:azle , aode
        //开都字母都一样,直接比较第二个字母 z的排列顺序大于aode 返回正值


        /*字符串调用方法indexOf (String s)从当前字符串的头开始检索字符串s,并返回首次出现s的位置。
        如果没有检索到字符串s,该方法返回的值是-1。
        字符串调用indexOf(String s ,int startpoint)方法从当前字符串的startpoint位置处开始检索字符串s,并返回首次出现s的位置。
        如果没有检索到字符串s,该方法返回的值是-1。
        字符串调用lastIndexOf (String s)方法从当前字符串的头开始检索字符串s,并返回最后出现s的位置。
        如果没有检索到字符串s,该方法返回的值是-1。*/
        String se1 = new String("HelloWorld");
        String se2 = new String("ld");
        System.out.println(se1.indexOf(se2,6));
        System.out.println(se1.lastIndexOf("l"));

        /*字符串对象调用该方法获得一个当前字符串的子串,
        该子串是从当前字符串的startpoint处截取到字符串的末尾所得到的字符串。
        字符串对象调用substring(int start ,int end)方法获得一个当前字符串的子串,
        该子串是从当前字符串的start处截取到end处所得到的字符串,但不包括end处所对应的字符。*/
        String sq1 = new String("HelloWorld");
        System.out.println(sq1.substring(5,7));
        //用的是索引截取字串


        /*字符串对象s调用该方法可以获得一个串对象,
        这个串对象是通过用参数newString指定的字符串替换s中由oldString指定字符串而得到的字符串。*/
        //例子 srt = "longl" , st2 = srt.replaceAll("l","L") -> LongL
        String sc1 = new String("WWWWorld");
        String sc2 = sc1.replaceAll("W","w");
        System.out.println(sc2);


        /*一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 */
        String co1 = new String(" hello ");
        System.out.println(co1);
        String co2 = co1.trim();
        System.out.println(co2);

        //用java.lang.一些数字的数据类型 可以将数字形式的字符串转换为相应类型的数字
        //整型 integer
        String number1 = new String("125");
        int num1 = Integer.parseInt(number1);
        System.out.println(num1);
        //浮点型
        String number2 = new String("125.254");
        //浮点型默认为double型
        double num2 = Double.parseDouble(number2);
        System.out.println(num2);
        //还有long short byte float 等等


        //toString(),一个对象通过调用该方法可以获得该对象的字符串表示。
        int sp1 = 5;
        String opw = Integer.toString(sp1);
        System.out.println(opw);


        //stringtokenizer 是字符分割器 可以使用nextoken()逐个获取字符串中的语言符号(单词)
        StringTokenizer tokenizer = new StringTokenizer("hello world , well come to java!",", ");
        //指定, 和 (空格) 为分隔符
        while(tokenizer.hasMoreTokens()){
            System.out.println(tokenizer.nextToken());
        }


        /*public void getChars(int start,int end,char c[],int offset )
        将字符串中从位置start到end-1位置上的字符拷贝的数组c中,并从数组c的offset处开始存放这些字符。
        需要注意的是,必须保证数组c能容纳下要被拷贝的字符。 */

        String kt1 = "hello,world";
        //创建数组的方法
        char[] chararray = new char[kt1.length()];
        kt1.getChars(0,5,chararray,0);
        System.out.println(chararray);
        //打印数组内容  数组的打印方法
        for (char ch:chararray){
            System.out.println(ch);
        }



       //public char[] toCharArray()   字符串对象调用该方法可以初始化一个字符数组,
        //该数组的长度与字符串的长度相等,并将字符串对象的全部字符拷贝到该数组中。
        String lp = "world";
        char[] charsarray = lp.toCharArray();
        for(char ch : charsarray){
            System.out.println(ch);
        }


        /*String(byte[],int offset,int length) 该构造方法使用平台默认的字符编码,
        用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。 */
        String mp1 = "hello,world";
        //先弄个数组
        char[] use = mp1.toCharArray();
        for(char h : use){
            System.out.println(h);
        }//现在是输出每个字符
        //现在组合字符
        String use1 = new String(use,0,5);
        System.out.println(use1);

        /*public byte[]  getBytes() 使用平台默认的字符编码,将当前字符串转化为一个字节数组*/
        //就是把每个字符都转换成ascii值然后存到数组中
        String ap = "hello,world";
        byte[] bit = ap.getBytes();
        for(byte cg : bit){
            System.out.println(cg);
        }





        /*String类创建的字符串对象是不可修改的,也就是说,
        String字符串不能修改、删除或替换字符串中的某个字符,
        即String对象一旦创建,那么实体是不可以再发生变化的*/

        /*StringBuffer类能创建可修改的字符串序列,
        也就是说,该类的对象的实体的内存空间可以自动的改变大小
        ,便于存放一个可变的字符序列。   (相当于字符串变量)*/

        StringBuffer a = new StringBuffer("helloworld");
        System.out.println(a);




        //正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称作正则表达式中的元字符。
        //比如,“\\dhello”中的\\d就是有特殊意义的元字符,代表0到9中的任何一个。
        // 字符串“9hello”和“1hello”都是和正则表达式:“\\dhello”匹配的字符串之一。



        /*字符串对象调用
        public boolean matches(String regex)方法可以判断当前字符串对象是否和参数regex指的正则表达式匹配。*/

        String str = "Hello, World!";
        boolean isMatch = str.matches("Hello.*");
        System.out.println(isMatch);
        // 结果为 true,因为字符串以 "Hello" 开头

    }
}
相关推荐
程序猿-瑞瑞1 分钟前
24 go语言(golang) - gorm框架安装及使用案例详解
开发语言·后端·golang·gorm
qq_433554541 分钟前
C++ 面向对象编程:递增重载
开发语言·c++·算法
组合缺一4 分钟前
Solon v3.0.5 发布!(Spring 可以退休了吗?)
java·后端·spring·solon
程序猿零零漆6 分钟前
SpringCloud 系列教程:微服务的未来(二)Mybatis-Plus的条件构造器、自定义SQL、Service接口基本用法
java·spring cloud·mybatis-plus
猿来入此小猿8 分钟前
基于SpringBoot在线音乐系统平台功能实现十二
java·spring boot·后端·毕业设计·音乐系统·音乐平台·毕业源码
易码智能9 分钟前
【EtherCATBasics】- KRTS C++示例精讲(2)
开发语言·c++·kithara·windows 实时套件·krts
一只自律的鸡10 分钟前
C语言项目 天天酷跑(上篇)
c语言·开发语言
程序猿000001号13 分钟前
使用Python的Seaborn库进行数据可视化
开发语言·python·信息可视化
一个不正经的林Sir18 分钟前
C#WPF基础介绍/第一个WPF程序
开发语言·c#·wpf
愤怒的代码22 分钟前
Spring Boot对访问密钥加解密——HMAC-SHA256
java·spring boot·后端