来说说Java中String 类的那些事情

今天正好学校那里的义务不多,我就计划把Stirng 的有关知识点都总结在一起了,这样有利于知识的系统性,要不然学多了就会越来越杂,最主要的是总会遗忘,影象的时间太短了,通过这种方式,把它归纳在一起,写一下博客,这样我以为会好一点,也可以辅助有需要的人,一石二鸟,嘻嘻,空话不多说继续干,奥里给。

首先咱们从最最先的源头来说,刚最先接触JAVA的时刻,我们学过java的基本的数据类型

  • [ 1 ] 基本类型
  1. 数值类型

  2. boolean

  • [ 2 ] 引用类型

引用类型-->引用
那么好,我们就先说说引用数据类型,先领会一下,JAVA一个有四种引用类型分别是类类型,接口类型,数组类型,枚举类型

1.String 可以通过new和组织方式来建立一个工具,用s来引用它(也就是相当于把asdf这个字符串赋值给s

String s = new String("asdf");

那么什么是引用呢?打个譬喻:就好比是你的学号,那么工具就是你,那就需要你(工具)来找到的学号,那怎吗可以找到你的学号呢?就需要学号来引用你(工具),那么你就可以知道你的学号是什么了,这个譬喻就可以注释什么是引用了

2.String(字符串)可以和数字相互转换

  • [1] 字符串转换成数字(三种)(条件是数字型)
String a = "123";
int num1 = Integer.parselnt(a);
Integer num2 = Integer.valuOf(a);
Integer num3 = new Integer(a);
  • [2] 数字转换成字符串
int a = 10;
String s = Integer.toString(a);
String s1 = String.valueOf(a);
String s2 = " " + a;

3.字符串中String类和StringBuffer类(StringBuilder类)

  • [1] String 工具是不能变的,他的内容是不能以变得
String s = "JAVA";
Stystem.out.println("s= " + s);
S = "Html";
System.out.println("s = " + s);

输出效果:

s=JAVA

s=Html

新手有的小白一定会好奇,它的值不是改变了吗,然则为什么说它是不能的呢?这个第一天语句建立一个内容为JAVA的String工具,第二个是建立一个内容为Html类的工具 并将其引用赋值给s,赋值后第一个工具
仍然存在然则却不能举行访问了,由于s现在已经指向了一个新的工具,那么原来谁人工具就会成为他的垃圾内存,在莫以特定时刻有JAVA虚拟机接纳,若是你要想存放的String可以调整巨细的话,而不是通过建立新的内存来存放新的工具。

String s = “JAVA”;,执行之后如下:

graph LR
S-->JAVA

String s = “Html”;执行之后如下:

graph LR
S-->JAVA
graph LR
S-->Html
这里由于我技术水平的问题图我只能这样画然则实在它是指向下一个Html谁人的,请人人体谅
  • [2] StringBuffer类和Stringbuilder类
    StringButter类/StringBuilder类要比Stirng要天真,他们可以随意的插入,添加,或者追加新的内容,可以这么说,StringButter类和Sttringbuilder类基本是相同的,可以视为一致

修改StringBuilder常用的方式:
appand(char[])//追加一个字符数组到组织器中

reverse()//翻转组织器中的字符

setCharAt(o,’a’)//将组织器中的索引值换做成字符型

我只说了其中的一小部分种的一小部分,也是很常用的,剩下的人人可以查阅API文档来看哒!

4.String类中to String()方式

  • [1] toString()方式在object类中界说的,其返回值是String类型
  • [2] 在举行String 类与其他类型的毗邻操作时,自动挪用toString方式,demo如下;
Data now = new DateData();
System.out.println("now= " + now);//相当于下一行代码
System.out.println("now="+ now.toString());

在阅读javadoc时ToString()
是这样说的 The toString method for class Object return a string consisting of the name of the class of which theobject is an instance, the at-sign character `@’, andthe unsigned hexadecimal representation of the hash code of theobject. In other words, this method returns a string equal to thevalue of:

getClass().getName() + ‘@’ + Integer.toHexString(hashCode())

它的注释是这么说的,翻译过来大致意思就是:类工具这个方式返回一个字符串,这个字符串是一个实例,@字符和无符号十六进制的示意形式,也就是说此方式返回一个即是值的字符串
由于它是object类已经有的方式m,而所有的类都继续Object,以是”所有工具都有这个方式”,他就是为了利便输出,若是输出的不是String类型的话,系统就会自动挪用toString()放法(实在他也就是起到个弥补的作用

public class A{
    public String toString(){
        return"this is A";
    }
    public static void main(String[] args){
        A obj = new A();
        System.out.println(obj);
    }
    输出效果是:this is A
    
public class A{
    public String getString(){
        return"this is A";
    }
    public static void main(String[] args){
        A obj = new A();
        System.out.println(obj.getString());
    }
    输出效果是:A@279f2327

看到利益了吗?就是这个toString()方式只要遇到println等一些输出的方式时,他就会自动挪用,不用显示打出来。

5.String类型

常见的方式我简朴的给你们说道说道,可能只是片面,又没说到的建议人人多多的去查阅API文档,差多了自然就记住了,就好比是背单词似的也是要一点一点地积累的

length()//返回字符串中的字符数

charAt(index)//返回字符串ss中指定位置的字符

tuUpperCase()//返回一个新的字符串,其中所有字母大写

toLoverCase()返回一个新的字符串,其中所有字母小写

concat(s1)//将本字符串和s1字符串毗邻起来返回一个新的字符串

Docker命名空间

给你们举个例子详细这些方式是怎么用的,由于总是有许多刚刚学还没入门的小伙伴,不会用,就是理论和实践不能很完全的连系。

String message = "welcome to JAVA!";
System.out.println("The length of " + message + "is"+ message.length());
输出效果:The length of welcome to JAVA! is 16

这只是代码中的一小部分,但却也是焦点地方。

6.String类的静态format()方式
它和printf很是相似只不过printf是显示一个花样化字符串,而format()则是返回一个花样化字符串,这个就是二者的区别,这个照样很简朴个,也很好明白我照样继续说一个例子吧!加深明白。

语法一:format(String format,object….args)
其中format为花样化字符串,args为由花样字符串中由花样说明符引用的参数,参数的数目是可变的,也可以为0.

转换符 说 明 示

%b、%B 花样化为布尔类型 false

%h、%H 花样化为散列码 A05A5198

%s、%S 花样化为字符串类型 “abc”

%c、%C 花样化为字符类型 ‘w’

%d 花样化为十进制数 26

%0 花样化为八进制整数 12

%x、%X 花样化为十六进制整数 4b 1

%e 花样化为用计算机科学计数法示意的十进制数
1.700000e+01

%a 花样化为带有效位数和指数的十六进制浮点值 0X1.C000000000001P4

%n 效果为特定于平台的行分隔符

%% 效果为字面值%

Sttring str = String.format("%d",400/2);
String str2 = String.format("b",3>5);
输出效果:
200
false

语法二:format(Loacate l,String format,Object…args)
该方式可以作为常用的日期和时间的花样转换符

下面这个表是我在书上看到的,以是记录了下来,也同时可以为人人作为参考。

表2 常见的日期和时间转换符

转换 说明 示 例

%te 一个月中的某一天(1〜31) 12

%tb 指定语言环境的月份简称 Jan (英文)、一月(中文)

%tB 指定语言环境的月份全称 February
(英文)、二月(中文)

%tA 指定语言环境的星期几全称 Monday (英文)、星期一(中文)

%ta 指定语言环境的星期几简称 Mon (英文)、星期一(中文)

%tc 包罗所有日期和时间信息 星期三 十月 25 13:37:22 CST 2008

%tY 4位年份 2008

%tj 一年中的第几天(001〜366) 060

%tm 月份 05

%td 一个月中的第几天(01〜31) 07

%ty 两位年份 08

public  static void main(String[] args){
    Date date new Date();//界说Data类工具
    Locale dorm = Locale.Us;
    String month = String.format(form,"%tY",date);//将当前年份初始花样化String data = String.format(form."%td",date);//将当前日期s初始化
    System.out.println("今年是:" + year +);
    System.out.println("今天是:" + date + "号");
}
运行效果:
今年是:2022年
现在是: April
今天是:17号
又是一个通宵终于把它总结完了,String 的知识点总结完了,说多倒也不多,然则说少他也不少啊,也有一些硬骨头得需要啃一会的对于小白来说
打个哈欠,满满的成就感,感受看着电脑时间久了眼睛都花了 ,总结了很久,哈哈哈哈,都是一些干货,觉得好可以,或者对你有辅助,点个赞,激励我一下子哦!嘿嘿,希望可以辅助有需要的人,我们可以一起提高!!这个点写完了估量发不到首页了,等到明天早上的吧!明早在公布吧。明天继续加油!奥里给!你们也是哦

原创文章,作者:28x29新闻网,如若转载,请注明出处:https://www.28x29.com/archives/4864.html