本文来总结一下Stirng 的有关知识点

1.String中的引用

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虚拟机中回收,但是它的值并没有改变 ,也就是例子中的s=“JAVA”他并没有改变,他只不过是在内存堆里面,所以说,String 是不可变的。

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

S-->JAVA

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

S-->JAVA
S-->Html

[2] StringBuffer类和Stringbuilder类

StringBuffer类/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@279f2327public class A{public String getString(){return"this is A";}public static void main(String[] args){A obj = new A();System.out.println(obj.toString());}
}
输出:A@279f2327

由上面可以看出,后面两种情况都是会输出它的地址的,只有第一种情况是输出它本身,看到好处了吗?就是这个toString()方法只要遇到println等一些输出的方法时,他就会自动调用,自动会显示你上面输出的字符串。

5.String类型

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

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

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

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

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

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

给你们举个例子具体这些方法是怎么用的,因为总是有很多刚刚学还没入门的小伙伴,不会用,就是理论和实践不能很完全的结合。

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 两位年份    08public  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号

希望可以帮助有需要的人,一起进步加油!

c++ 输出string_来讲讲Java中String 类的知识点相关推荐

  1. Java中String类的方法及说明

    String : 字符串类型 一.构造函数      String(byte[ ] bytes):通过byte数组构造字符串对象.      String(char[ ] value):通过char数 ...

  2. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  3. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数      String ...

  4. 在java中String类为什么要设计成final

    在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087 转载于 ...

  5. java中string类面试题_java中String类的面试题大全含答案

    1.下面程序的运行结果是()(选择一项) String str1="hello"; String str2=new String("hello"); Syste ...

  6. java中String类的常用方法总结

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  7. java 中String类的常用方法总结,玩转String类

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  8. JAVA中String类

    1.String类定义的变量是不可变得 eg:String s0="kvill"; String s1 = new String("kvill"); 为什么要设 ...

  9. Java中String类的运算符过载机制

    Java 的 String 类要受一种名为"运算符过载"的机制的制约. 也就是说,只有在随同 String 对象使用时,加号才会产生与其他任何地方不同的表现.对于字串,它的意思是& ...

最新文章

  1. 223.主成分分析PCA
  2. MySQL存储引擎类别
  3. jquery调用click事件的三种方式
  4. 【视频课】模型优化拆分!分别学习模型剪枝与模型量化理论与实践
  5. AS工程下gradle各文件(gradle.propertie等)与gradle配置(缓存等)讲述
  6. 游戏账号交易平台网站源码
  7. 【华为敏捷/DevOps实践】3. 如何开好站立会议
  8. 自动化测试工具之 selenium
  9. 【Python】AttributeError: 'Series' object has no attribute 'order'
  10. 访问量中 pv uv ip的区别
  11. 算法:Longest Valid Parentheses(最长有效的括号)
  12. 推荐几个JAVA 学习不错的网站
  13. VendorNPC.lua --随身商人
  14. 上井冲刺港交所上市:人均消费金额降幅明显,只在中国经营业务
  15. 第二届长三角高校数学建模竞赛
  16. matlab 的谱相减语音增强算法的研究,基于MATLAB的谱相减语音增强算法的研究
  17. 在线教育平台edx运营情况数据分析报告——SQLTableau
  18. etlgr是什么服务器_什么是ETL,ETL工程师的的主要工作职责是什么?
  19. 流计算 Oceanus 限量1元秒杀,立省2000元
  20. 《世界因你不同:李开复自传》--引言 从心选择

热门文章

  1. 电脑摄像头一维条形码matlab识别
  2. 基于JAVA+SpringMVC+MYSQL的学生请假管理系统
  3. [******] java多线程连续打印abc
  4. vmware ubuntu硬盘空间不够用,空间扩展
  5. 数组中的对象的特征值提取生成新对象实现方法
  6. Too many open files 问题的解决
  7. [Effective JavaScript 笔记]第23条:永远不要修改arguments对象
  8. 46 - 算法 - Leetcode 168 -26进制 --减一
  9. php tp5.3,[李景山php]每天TP5-20161226|thinkphp5-Console.php-3
  10. Python判断一个集合族是否为σ代数