首页 > 技术文章 > java-String类,构造方法,重载

beiluoL 2019-03-06 15:43 原文

String 类
所有的字符串都是String类的对象, 创建字符串的方式有
String str= "";
String str = new String("值");

所有的字符串都能够操作以下方法:
str对象.toUpperCase() 转大写
str对象.toLowerCase() 转小写
str对象.concat("拼接的字符串") 拼接
str对象.indexOf("判断的字符串") 判断是否存在,没有就返回-1
str对象.lastIndexOf(....) 从后面开始寻找
str对象.substring(start,end) 截取,包含start位置,不包含end
str对象.charAt(下标) 得到下标中的一个字符
str对象.length() 获得长度
str对象.isEmpty() 是否为空
str对象.endsWith() 判断字符串末尾是否是某个值
str对象.startsWith() 判断是否以某个字符串开头
str对象.split("字符串") 以某个字符串把字符串分割成String类型的
数组,数组中每一个数据中不含有分割的字符串
天苍苍,野茫茫,见老王.split(",")
[天苍苍 野茫茫 见老王]
str对象.trim() 去掉首尾所有空格,中间的空格不会去掉

字符串的转换问题:和数值的转换
数字和字符串不能使用小括号的方式强转,必须使用对应的方法
数字转换成字符串的方式
1. 数字+""
2. String.valueOf("值")

字符串转换成数字,必须使用到包装类
包装类.parseXXX(字符串) 对应着所有基本类型的包装类都可以点出
对应的转换方法
包装类.valueOf(String) 返回的是Integer类型

关于基本类型包装类之间的区别:
1.基本类型非对象,无法直接使用,默认值:比如数值类型0
包装类创建的对象是引用类型,可以使用类中的方法对数据进行操作,
默认值为null
2.两者之间可以直接转换,不需要强转等操作
基本类型赋予给引用类型也被称为装箱,反之拆箱
装箱:通过包装类的valueOf() 方法转换的
拆箱:通过包装类的value属性得到

Integer a = 10
Integer b = 10
a==b true
因为在比较的时候会判断取值是否在byte取值范围内,如果在就指向
同一块空间,如果溢出值就为false
Byte,Short,Character,Integer,Long 适用这套规则
Float,Double不同


String本身不可变,每一次修改都会创建新的字符串,而且不易于改变
String增强类能够弥补这些,StringBuffer和StringBuilder类
在String的基础上,提供了对字符串的灵活的修改的操作

a).StringBuffer 线程安全
b).StringBuilder 非线程安全

sb对象.append("内容") 在字符串末尾追加内容
sb对象.delete(start,end) 删除指定位置的字符串
sb对象.deleteCharAt(index) 删除某个字符
sb对象.insert(index,str) 在指定位置插入一个字符串
sb对象.reverse() 反转字符串


构造方法(构造器) constructor


构造方法的作用:在创建对象,new的时候调用执行构造方法,主要
用来对变量进行初始化的操作
java中所有的类都有一个隐式存在的构造方法
构造方法的方法结构:
访问修饰符 方法名(){

}
构造方法的方法名必须和类名相同

重载OverLoad
一个类中允许出现多个同名的方法,但是这些方法参数列表不能相同
(个数,类型都不同),与其他任何无关这样的方式称为方法的重载,
重载是java多态的体现之一,表示同一种事物的不同表现形式

方法重载后,调用方法时会根据实参的类型去自动匹配对应的方法
匹配的规则:
1.有可行集
2.有最佳可行集
3.如果出现多个可行而没有最佳可行就会异常

一个类中可以有多个构造方法,通过重载,当一个类写了带参的构造
方法以后,默认的无参构造方法就不存在了,这个时候new 类名()
不行,因为new类名不加参数的时候调用的是无参构造方法

 

推荐阅读