首页 > 编程语言 >Java基础的语法---String

Java基础的语法---String

时间:2024-05-24 20:27:24浏览次数:23  
标签:Java String System --- println str 字符串 out

Java的String类是不可变的,意味着一旦创建,其值就不能被改变。String类提供了丰富的API来操作字符串。

以下是一些常用的方法:

构造方法:

有以下几种常见的:

public class stringlearn {
    public static void main(String[] args) {
        String str1 = "Hello World";
        String str2 = new String(str1);
        String str3 = new String();

        char[] chararray = {'a', 'b', 'c', 'd', 'e'};
        String str4 = new String(chararray);
        String str5 = new String(chararray,0,2);

        byte[] bytearray = new byte[] {97,98,99,100,101,102,103};
        String str6 = new String(bytearray);

        System.out.println(str1);//Hello World
        System.out.println(str2);//Hello World
        System.out.println(str3);//
        System.out.println(str4);//abcde
        System.out.println(str5);//ab
        System.out.println(str6);//abcdefg
    }
}

Java13引入了引入的文本块的语法。

在文本块中,您可以跨多行定义字符串,而不需要使用\n+来拼接字符串。这样可以提高代码的可读性。

String str = """
                sfsdf
                sfdsd
                dsf
                dsf
                """;
System.out.println(str)

//输出的结果是
sfsdf
sfdsd
dsf
dsf

//

获取字符串长度:

此处str为String的变量名

int length = str.length();

字符访问

char firstchar = str.charAt(0);

// 获取指定位置的字符

子字符串

String Str = str.substring(startIndex);

从startIndex开始截取到字符串末尾

String Str = str.substring(startIndex, endIndex);

截取从startIndex到endIndex(不包括endIndex)的子串

startIndex和endIndex是要截取的位置(下标)

比较字符串

一、比较内容是否相等

boolean isEqual = str.equals(anotherStr);

二、忽略大小写比较

if(str1.equals("Hello World")){
            System.out.println("相等");
        }else {
            System.out.println("不相等");
        }

boolean isEqualIgnoreCase = str.equalsIgnoreCase(anotherStr);

三、比较返回一个数 

int compareResult = str.compareTo(anotherStr);

如果两个字符串相等,则返回值为0。 

如果调用compareTo()方法的字符串比传入的字符串小,则返回一个负整数。

如果调用compareTo()方法的字符串比传入的字符串大,则返回一个正整数。

具体返回值的计算规则如下:

  1. 如果两个字符串相等,则返回值为0。

  2. 如果调用compareTo()方法的字符串在按字典顺序排列时排在被比较的字符串之前,则返回一个负整数。这个负整数实际上是两个字符串在第一个不同字符上的 Unicode 编码点的差值。

  3. 如果调用compareTo()方法的字符串在按字典顺序排列时排在被比较的字符串之后,则返回一个正整数。这个正整数实际上也是两个字符串在第一个不同字符上的 Unicode 编码点的差值。

以下是ASCII与Unicode的介绍博客 

Unicode与ASCII-CSDN博客 

在Java中,字符串是以Unicode编码的方式存储的。因此,比较字符串时通常会涉及到比较其中包含的字符的Unicode编码点。

compareTo()方法在比较字符串时也是根据两个字符串中的对应字符的Unicode编码点来确定字符串的大小关系的。

了解Unicode编码点的概念对理解字符串比较以及其他涉及Unicode字符集的操作非常重要。Unicode编码点的唯一性可以帮助确保不同的字符在计算机中得到正确的表示和处理。 

查找字符或子串

使用indexOf与lastIndexOf 

indexOf

如果找到相关的字符就返回该字符第一次出现的位置(从0开始数)

lastIndexOf

如果找到相关的字符就返回该字符最后一次出现的位置(从0开始数)

 

替换字符串

有以下四种替换字符串的方法

前三种的替换都是全局调用

replaceAll的使用需要用正则表达式

replaceFirst则就是只替换第一次遇到的

replace与replaceAll的区别:

由于replaceAll使用正则表达式解析,处理速度通常比直接的replace慢,尤其是在处理大量数据时。因此,在不需要正则表达式功能时,优先考虑使用replace。

去除空白

一、trim()

去除字符串首尾的空格 

String str13 = " Hello World ";
String str14 = str13.trim();
System.out.println(str14);//Hello World

使用这个方法会返回一个新的字符串 

二、strip()

 

Java 11起,功能与trim相同,但更高效

 strip()                   删去头尾的空格

stripLeading()       删去头部的空格

stripTrailing()        删去尾部的空格

转换大小写

toUpperCase();  转化为大写

toLowerCase();  转化为小写

String str1 = "Hello World";
String str19 = str1.toLowerCase();
System.out.println(str19);   //hello world
String str20 = str1.toUpperCase();
System.out.println(str20);   //HELLO WORLD

分割字符串

String[] parts = str.split(","); // 根据指定分隔符拆分字符串为数组

String sentence = "Hello World this is Java";
String[] words = sentence.split(" ");
// words 现在是 ["Hello", "World", "this", "is", "Java"]

判断字符串特性

boolean str2 = str.isEmpty();

判断字符串是否为空

boolean str2 = str.isBlank();

Java 11起,判断字符串是否为空白(空格、制表符、换行符或空字符串)

连接字符串

一、concat()

String str1 = "Hello World";
String str2 = new String(str1);
String str21 =str1.concat(str2);
System.out.println(str21);

//Hello WorldHello World

二、join()

使用分隔符连接字符串数组

String str =String.join("_","str1","str2");
System.out.println(str);

//str1_str2

其他操作

转换为字节数组

byte[] bytes = str.getBytes();

格式化字符串

String str23 = String.format("hello|%20s|",str1);
System.out.println(str23);

//输出的结果是:hello|         Hello World|

反转字符串(非String类直接方法,但常用)

String reversed = new StringBuilder(str).reverse().toString(); 

标签:Java,String,System,---,println,str,字符串,out
From: https://blog.csdn.net/2301_80158456/article/details/139183723

相关文章

  • Windows Server 2008 R2安装VMtools-安装失败的解决方法
    VMware安装WindowsServer2008R2可以参考这篇文章:https://blog.csdn.net/2301_77225571/article/details/139113923?spm=1001.2014.3001.55011.下载补丁https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419远控虚拟机查看虚拟机IP地址回到本机,【Win......
  • XⅢ-Python解析网页
    目录        1.requests模块        2.BeautifulSoup        2.1.什么是BeautifulSoup        2.2.解析器        2.3.安装与配置        2.4.快速入门        2.4.1解析数据        标签   ......
  • C语言----深入理解指针(3)
    1.字符指针变量//intmain()//{//charch='w';//char*pc=&ch;//printf("%c",*pc);//return0;//}/*intmain(){//char*p="abcdef";//chararr[]="abcdef";//常量字符串abcdef\0//......
  • 玩转STM32-直接存储器DMA(详细-慢工出细活)
    文章目录一、DMA介绍1.1DMA简介1.2DMA结构二、DMA相关寄存器(了解)三、DMA的工作过程(掌握)四、DMA应用实例4.1DMA常用库函数4.2实例程序一、DMA介绍1.1DMA简介DMA用来提供外设与外设之间、外设与存储器之间、存储器与存储器之间的高速数据传输,无需CPU干预,数据可......
  • C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
    #include<stdio.h>intmain(){intn,x;scanf("%d%d",&n,&x);intcount=0;for(inti=1;i<=n;i++){intm=i;//从1开始计算while(m)//循环运行的条件{if(m%10==x)//如果m除以10的余数是x的......
  • 小程序-修改用户头像
    1、调用拍照/选择图片//修改头像constonAvatarChange=()=>{ //调用拍照/选择图片 uni.chooseMedia({  //文件个数  count:1,  //文件类型  mediaType:['image'],  success:(res)=>{   console.log(res)    ......
  • 小程序-收货地址管理模块实现
    页面结构代码:address-form.vue  --->新建地址和修改地址页面<template><viewclass="content"><form><!--表单内容--><viewclass="form-item"><textclass="label">收货人</text>......
  • Mybatis-plus核心功能-自定义SQL
    MyBatis-Plus提供了强大的条件构造器。通过条件构造器可以写一些复杂的SQL语句,从而提高我们的开发效率。通过EntityWrapper(简称EW,MP封装的一个查询条件构造器)或者Condition(与EW类似)来让用户自由的构建查询条件,简单便捷,没有额外的负担,能够有效提高开发效率,它主要用于处理......
  • Linux-Nginx安装及启动命令
    目录1、安装依赖2、nginx安装3、防火墙打开80端口4、nginx启动停止1、安装依赖yum-yinstallgcc-c++ yum-yinstallpcrepcre-devel yum-yinstallzlibzlib-devel yum-yinstallopensslopenssl—devel2、nginx安装mkdir/usr/local/src/nginxcd......
  • UES-08-迭代器和生成器
    循环问题在一般循环结构中,如果需要跟踪多个变量,情况将变得复杂,容易出错。迭代器用于迭代对象的对象,一般提供next()方法用于迭代对象中的元素,该方法返回两个变量,value表示返回的值,done表示是否还存在没有遍历的元素。functioncreate(items){vari=0;return{......