String类常见构造方法大全(Java)

2023-10-26

字符串——String

构造方法摘要
字符串的内容是不会发生改变的,他的对象在创建后不能被更改

String s="…"; : 使用直接赋值的方式获取一个字符串对象 。 其字符串会存在 串池(StringTable)中,也可理解为字符串常量池,在JDK7版本开始,从方法取中挪到了堆内存中

String s="abc"

public String() : 使用new的方式来获取一个字符串对象,使其表示一个不含任何内容的空字符(空参构造

   String s=new String();

public String(String original) : 传递一个字符串,根据传递的字符串再创建一个字符串对象

  String s=new String("abc");

public String(Char[ ] chs) :传递一个字符数组,根据字符数组再创建一个字符串对象

   char[] chs={'a','b','c'};
   String s=new String(chs);

public String(byte[] chs) :传递一个字节数组,根据字节数组再创建字符串对象

 byte[] bytes={97,98,99};
 String s=new String(bytes);    // 输出结果为abc

方法摘要
char charAt(int index) :返回指定索引处的 char 值。

int codePointAt(int index) :返回指定索引处的字符(Unicode 代码点)。

int codePointBefore(int index) :返回指定索引之前的字符(Unicode 代码点)。

int codePointCount(int beginIndex, int endIndex) :返回此 String 的指定文本范围中的 Unicode 代码点数。

int compareTo(String anotherString) : 按字典顺序比较两个字符串。

int compareToIgnoreCase(String str) :按字典顺序比较两个字符串,不考虑大小写。

String concat(String str) : 将指定字符串连接到此字符串的结尾。

boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true。

boolean contentEquals(CharSequence cs) :将此字符串与指定的 CharSequence 比较。

boolean contentEquals(StringBuffer sb) : 将此字符串与指定的 StringBuffer 比较。

static String copyValueOf(char[] data) : 返回指定数组中表示该字符序列的 String。

static String copyValueOf(char[] data, int offset, int count) : 返回指定数组中表示该字符序列的 String。

boolean endsWith(String suffix) : 测试此字符串是否以指定的后缀结束。

boolean equals(Object anObject) : 将此字符串与指定的对象比较,结果完全一样才为true。

boolean equalsIgnoreCase(String anotherString) : 将此 String 与另一个 String 比较,忽略大小写。

static String format(Locale l, String format, Object… args) : 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

static String format(String format, Object… args) : 使用指定的格式字符串和参数返回一个格式化字符串。

byte[] getBytes() : 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

byte[] getBytes(Charset charset) : 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

byte[] getBytes(String charsetName) : 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : 将字符从此字符串复制到目标字符数组。

int hashCode() : 返回此字符串的哈希码。

int indexOf(int ch) : 返回指定字符在此字符串中第一次出现处的索引。

int indexOf(int ch, int fromIndex) : 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。

int indexOf(String str) : 返回指定子字符串在此字符串中第一次出现处的索引。

int indexOf(String str, int fromIndex) : 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

String intern() : 返回字符串对象的规范化表示形式。

boolean isEmpty() : 当且仅当 length() 为 0 时返回 true。

int lastIndexOf(int ch) : 返回指定字符在此字符串中最后一次出现处的索引。

int lastIndexOf(int ch, int fromIndex) : 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。

int lastIndexOf(String str) : 返回指定子字符串在此字符串中最右边出现处的索引。

int lastIndexOf(String str, int fromIndex) : 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。

int length() : 返回此字符串的长度。

boolean matches(String regex) : 告知此字符串是否匹配给定的正则表达式。

int offsetByCodePoints(int index, int codePointOffset) : 返回此 String 中从给定的 index 处偏移 codePointOffset 个代码点的索引。

boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) :测试两个字符串区域是否相等。

boolean regionMatches(int toffset, String other, int ooffset, int len) :测试两个字符串区域是否相等。

String replace(char oldChar, char newChar) : 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

String replace(CharSequence target, CharSequence replacement) : 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。

String replaceAll(String regex, String replacement) : 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

String replaceFirst(String regex, String replacement) : 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。

String[] split(String regex) : 根据给定正则表达式的匹配拆分此字符串。

String[] split(String regex, int limit) : 根据匹配给定的正则表达式来拆分此字符串。

boolean startsWith(String prefix) : 测试此字符串是否以指定的前缀开始。

boolean startsWith(String prefix, int toffset) : 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。

CharSequence subSequence(int beginIndex, int endIndex) : 返回一个新的字符序列,它是此序列的一个子序列。

String substring(int beginIndex) : 返回一个新的字符串,它是此字符串的一个子字符串。

String substring(int beginIndex, int endIndex) : 将此字符串转换为一个新的字符数组【可实现字符串的切片操作】。

char[] toCharArray() : 将此字符串转换为一个新的字符数组。

String toLowerCase() : 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

String toLowerCase(Locale locale) : 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。

String toString() : 返回此对象本身(它已经是一个字符串!)。

String toUpperCase() : 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

String toUpperCase(Locale locale) : 使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。

String trim() :返回字符串的副本,忽略前导空白和尾部空白。

static String valueOf(boolean b) : 返回 boolean 参数的字符串表示形式。

static String valueOf(char c) : 返回 char 参数的字符串表示形式。

static String valueOf(char[] data) : 返回 char 数组参数的字符串表示形式。

static String valueOf(char[] data, int offset, int count) : 返回 char 数组参数的特定子数组的字符串表示形式。

static String valueOf(double d) : 返回 double 参数的字符串表示形式。

static String valueOf(float f) : 返回 float 参数的字符串表示形式。

static String valueOf(int i) : 返回 int 参数的字符串表示形式。

static String valueOf(long l) : 返回 long 参数的字符串表示形式。

static String valueOf(Object obj) :返回 Object 参数的字符串表示形式。

字符串常见操作
① 字符串的遍历
需求一:键盘录入一个字符串,使用程序实现在控制台遍历该字符串

import java.util.Scanner;

public class YY{
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        String str=in.next();
        for (int i = 0; i <str.length() ; i++) {
            char chr = str.charAt(i);
            System.out.print(chr+" ");
        }
    }
        }

在这里插入图片描述

② 字符串的统计

需求二:键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)

import java.util.Scanner;

public class YY{
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.print("请输入一个字符串: ");
        String str=in.nextLine();
        int bigCount=0;
        int smallCount=0;
        int numberCount=0;
        for (int i = 0; i <str.length() ; i++) {
            char chr = str.charAt(i);
            if(chr>='A' && chr<='Z' ){
                // char类型的变量在参与计算时会自动提升为int————》查询ascii码表
                bigCount++;
            }
            if(chr>='a' && chr<='z'){
                smallCount++;
            }
            if(chr>='0' &&chr<='9'){
                numberCount++;
            }
        }
        System.out.println(str);
        System.out.println("大写字母共有: "+bigCount);
        System.out.println("小写字母共有: "+smallCount);
        System.out.println("数字字符共有: "+numberCount);
    }
}

在这里插入图片描述

1、字符串的拼接与反转

需求三:把int数组中的数据按指定的格式拼接成字符串返回,调用该方法,并在控制台输出

注意 (以下三个语句系统占用的内存依次增多)

int[] a;                     //只是声明了一个数组变量,并未初始化,无法使用,使用会出错

int[] a = null;             //声明了一个数组变量,赋值为 null;虽然初始化,
                              但是一个空指针,没有指向一个有效的数组什么都做不了,
                              无法调用这个对象的方法,会产生空指针异常
                    
int[] a = new int[0];       //声明并创建一个数组对象,长度为0,是一个数组对象,只不过没有内容
                             

由以上可以得出结论对于数组,不但要判断它是否为空指针,也需要判断它是否有内容,同时要先判断空指针再判断长度是否为0,顺序不能颠倒,因为空指针没有length属性
eg:
/*数组内容为 int[] arr={1,2,3}
执行方法后的输出结果为字符串:[1,2,3] */

import java.util.Arrays;

public class YY {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        String str = Str(arr);
        System.out.println("原始内容为: "+ Arrays.toString(arr));
        System.out.println("拼接后的字符串内容为: "+str);
    }
    public static String Str(int arr[]) {
        if (arr == null) {
            return "";
        }
        if (arr.length == 0) {
            return "[]";
        }
        String result = "[";
        for (int i = 0; i < arr.length; i++) {
            if (i== arr.length-1){
                result = result + arr[i];
            }else
            result = result + arr[i]+",";
        }
        return result+"]";
    }
}

在这里插入图片描述

需求四:定义一个方法,实现字符串的反转,键盘录入一个字符串,调用该方法后,在控制台输出结果
eg:
/键盘录入abc,输出结果为cba/

import java.util.Scanner;

public class YY {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        String str=in.nextLine();

        Str(str);
    }
    public static void Str(String str){
        String str1="";
        for (int i = 0; i <str.length() ; i++) {
            char chr = str.charAt(str.length()-1-i);
            str1=str1+chr;
        }
        System.out.println("反转后的字符串结果为: "+str1);
    }
}

在这里插入图片描述

2、金额转换

在这里插入图片描述

import java.util.Scanner;

public class YY {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int money;
        // 1、键盘录入金额
        while (true) {
            System.out.println("请录入金额: ");
            money = in.nextInt();
            if (0 <= money && money <= 9999999) {
                break;
            } else {
                System.out.println("金额无效");
            }
        }
        // 2、获取money中的每一位数字
        String sss = "";
        while (true) {
            // 从右往左获取数据(右侧是数据的个位)
            int ge = money % 10;
            String moneyStr = getMoneyStr(ge);
            sss = moneyStr + sss;
            money = money / 10;
            // 如果所有数字获取到,此时money为0;循环结束
            if (money == 0) {
                break;
            }
        }
        // 3、在前面补零,补齐7位
        int count=7-sss.length();
        for (int i = 0;i< count; i++) {
            sss = "零"+ sss;
        }
        // sss——————>零零零零伍肆贰
        // 4、插入单位
        // 定义一个数组表示单位——————>最终输出结果为Result
        String Result="";
        String [] unit= {"佰","拾","万","仟","佰","拾","元",};
        for (int i = 0; i <sss.length(); i++) {
           Result=Result+(sss.charAt(i)+unit[i]);
        }
        System.out.println(Result);

    }
    // 定义一个方法,将数字变为大写中文(查表法)
    public static String getMoneyStr(int number){
        // 定义数组,让数字跟大写的中文产生一个对应的关系
        String[] arr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        // 返回结果
        return arr[number];
    }
}

在这里插入图片描述

字符串——StringBuilder

StringBuilder可以看成是一个容器,创建之后里面的内容是可变的
● 作用:提高字符串的操作效率

构造方法摘要
public StringBuilder() :创建一个空白字符串,不含任何内容

public StringBuilder(String str) :根据字符串的内容,来创建可变字符串对象

StringBuilder常用方法
public StringBuilder append(任意类型):添加数据,并返回对象本身

public StringBuilder reverse():反转容器中的内容

public int length(): 返回长度(字符出现的个数)

public String toString():通过toString()就可以实现把StringBuilder转换为String

字符串——StringJoiner

Stringjioner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的
● 作用:提高字符串的操作效率,而且代码编写特别简介,但目前市场上很少用(JDK8出现

构造方法摘要
public StringJoiner(间隔符号):创建一个StringJoiner对象,指定拼接时的间隔符号

public StringJoiner(间隔符号,开始符号,结束符号):创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号

StringBuilder常用方法

public StringJoiner add():添加数据,并返回对象本身

public int length(): 返回长度(字符出现的个数)

public String toString():返回一个字符串(该字符串就是拼接后的结果)

综合练习

调整字符串的内容并比较 :给定两个字符串A与b。A的旋转操作就是将A 最左边的字符移动到最右边。例如:A=‘abcde’,在移动一次之后结果就是’bcdea’,如果在若干次调整操作后,A能变成B,那么返回True。如果不匹配成功,则返回false

public class YY {
    public static void main(String[] args) {

        // 字符串A
        String A = "abcde";
        String B = "cdeab";
        boolean result = check(A, B);
        System.out.println(result);
    }

    public static boolean check(String strA, String strB) {
        int count=0;
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            count++;
            if (strA.equals(strB)) {
                System.out.println("共旋转次数为: "+count);
                return true;
            }
        }
        return false;
    }
        // 旋转字符串
        public static String rotate(String str){
            //获取最左边的字符
            char first = str.charAt(0);
            //获取剩余的字符
            String end = str.substring(1);
            //返回旋转后的字符
            return end+first;
        }
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String类常见构造方法大全(Java) 的相关文章

随机推荐

  • 长文详解HiveSQL执行计划

    本文目录 一 前言二 SQL的执行计划 2 1 explain 的用法 2 2 explain 的使用场景 案例一 join 语句会过滤 null 的值吗 案例二 group by 分组语句会进行排序吗 案例三 哪条sql执行效率高呢 案例
  • 人工测试之代码检查、走查与评审

    人工测试方法 代码检查 代码走查 桌面检查 同行评审 代码检查与代码走查的联系 1 要求人们组成一个小组来完阅读或直观检查特定的程序 找出错误 但不必改正错误 2 都是对过去桌面检查过程 在提交测试前 由程序员阅读自己程序的过程 的改进 3
  • Mac m1上使用docker搭建C++开发调试环境

    说明 因为mac上虚拟机都不太好用 有些还收费 故使用docker来搭建虚拟机 况且我的Mac是m1芯片 用的是arm架构 虚拟机更是少 搭建本机与虚拟机互通 mac上docker与linux不同 mac上实际上内部是建了个linux的虚拟
  • 在编写Java程序时,图片不显示的问题

    可能有几种原因导致图片无法正常显示 图片路径不正确 如果图片的路径错误或不存在 程序将无法找到图片并将其加载到内存中 在Java中 可以使用相对路径或绝对路径来指定图片路径 应根据实际情况进行调整 图片格式不支持 如果图片格式不受Java支
  • JAVA--泛型

    一 概念 1 定义 在定义类或接口通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型 2 引入 从JDK1 5后 Java引入 参数化类型 概念 即在创建集合时指定可以再指定元素类型 3 优点 a 解决元素存储的安全性问题
  • Linux中怎么创建文件?

    众所周知 在Windows系统中可以直接右键新建文件 而在Linux系统中 想要创建文件并非易事 需要通过执行命令来完成 那么Linux系统中创建文件常用的方法有哪些 本文为大家介绍一下Linux系统下创建文件的8种方法 快来了解一下吧 1
  • Impala与Hive的比较

    http tech uc cn p 1803
  • 达梦数据库报“网络通信异常”分析解决

    前言 达梦数据库在通过程序插入具有BLOB字段的记录时 非通过SQL直接插入 报 通信异常 通过更换达梦库驱动包解决 问题 在一个项目现场 在进行数据导入时 总时报 网络通信异常 19 08 56 ERROR Application exc
  • element-ui下的table的鼠标悬浮颜色修改

    对于表格 有时候仅仅用作展示效果 所以不需要悬浮之类的效果 但是官网上又没有修改悬浮颜色的 这里使用类名样式覆盖 v deep el table enable row hover el table body tr hover gt td b
  • dns服务器和域控制器在同一台计算机上安装.( ),Certkiller.COM有一个ActiveDirectory域控制器。所有域控制器配置为DNS服务器和WindowsServer2008安装。只...

    YouareimplementinganASP NETDynamicDataWebsite TheWebsiteincludesadatacontextthatenablesautomaticscaffoldingforalltablesi
  • C语言--通过指针引用数组

    C语言 通过指针引用数组 文章目录 C语言 通过指针引用数组 前言 1 引用数组元素时指针的运算 2 通过指针引用数组元素 引用数组的方式 示例 用三种方法输出元素中的全部元素 方法一 直接引用a i 方法二 间接引用 通过数组名计算数组元
  • python 实现将字典写入csv文件

    shutdown yunfeiyang username yunfeiyang binding house 0 1 1 2 register time 2018 20 import csv csvfile file csvtest csv
  • mybatis与spring boot的集成

    前言 MyBatis提供了整合到 Spring Boot 的方案 mybatis spring boot starter 能够让你快速的在 Spring Boot 上面使用 MyBatis 那么我们来看看这个 mybatis spring
  • TortoiseSVN客户端用法

    从图中可以看到 涉及SVN的选项有3个 1 SVN Update 从服务器更新到本地 2 SVN Commit 从本地提交到服务器 3 TortoiseSVN 查看详细的SVN选项 一 更新 更新使用SVN Update选项 点击SVN U
  • 【微信小程序】小程序项目之上传视频实践

    人狠话不多 看代码 wxml
  • 利用iframe跨域请求

    跨域是系统与系统之间信息交流的一种方式 为了获取另外一个地方的信息 经常会出现跨域 总结一下利用iframe跨域进行请求 网上关于跨域的信息很多 只做一下备忘
  • JavaDay08

    定义一个方法 根据成绩 返回对应的等级 package com bjpowernode demo01 exercise import java util Scanner 定义一个方法 根据成绩 返回对应的等级 public class De
  • Kruskal算法

    Kruskal算法 Kruskal算法是一种用来查找最小生成树的算法 由Joseph Kruskal在1956年发表 用来解决同样问题的还有Prim算法和Boruvka算法等 三种算法都是贪心算法的应用 和Boruvka算法不同的地方是 K
  • 网管实战(6):忘记交换机密码的处理(HUAWEI S5735)

    今天拿到一台华为S5735的交换机 有密码进不去 网上找资料进入了 记录下来以备后查 利用交换机的BootROM提供了清除Console口密码的功能 在用户使用Console口登录的时候跳过密码检查 进入交换机后修改Console口密码 然
  • String类常见构造方法大全(Java)

    目录 字符串 String 1 字符串的拼接与反转 2 金额转换 字符串 StringBuilder 字符串 StringJoiner 综合练习 字符串 String 构造方法摘要 字符串的内容是不会发生改变的 他的对象在创建后不能被更改