package com.java.api;
public class StringCreate {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
//字符串是常量,一单创建,其内容和长度是不可以改变的。如果需要对一个字符串进行修改,则只能创建新的字符串
//string创建方式,有序的字符。0。1。2。3。4。56。
//无参数构造方法
/*String str1=new String();
//有参构造方法
String str2=new String("abce");
char[] chars=new char[]{'2','3','3'};
String str3=new String(chars);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);*/
//
String str="Hello welcome to china,welcome to java";
System.out.println(str.length());//字符串的长度。个数
System.out.println(str.charAt(0));//第一个字符是什么
System.out.println(str.indexOf('c'));//字符c出现的第一次的位置索引是
System.out.println(str.lastIndexOf('c'));//字符c最后一次出现的位置索引
System.out.println(str.indexOf("we"));//字符串we第一次出现的位置
System.out.println(str.lastIndexOf("we"));//字符串we最后一次出现的位置
//把字符串拆分,
char[] charss=str.toCharArray();
for(char value:charss){
System.out.print(value+"\t");
}
System.out.println("------");
//把字符串全部变成大写哦。
System.out.println(str.toUpperCase().hashCode());//字符串一但创建,就不能变化。这些方法都是又创建了一个新的对象
System.out.println(str.hashCode());
//将java替换称python
System.out.println(str.replace("java","python"));
//去掉空格
String stt=" hell hlll ";
System.out.println(stt.trim());
System.out.println(str.hashCode());
StringCreate a=new StringCreate();
System.out.println(a);
System.out.println(a.hashCode());
String str21="String hello";
String str22="String hello";
System.out.println(str21.startsWith("Str"));//字符的开头是不是。
System.out.println(str21.endsWith("hk"));//字符串的结尾是不是
System.out.println(str21.equals(str22));//是否等于str22 。字符中的equals比较的 object中的equals比较的是对象,是否是同一个对象。跟==一样。
System.out.println(str21.contains("h"));//中间是否包含
System.out.println(str21.isEmpty());//是否是空的。
String sttt="羽毛球-篮球-乒乓求";
//对字符串进行截取,substring 2个参数的形式,是左边包,右边不包含
System.out.println(sttt.substring(4));//截取从4到结尾的
System.out.println(sttt.substring(4,6));//截取从4到5的/左边包含,右边不包含的。
//split是切割作用 。不包含切割符号。返回值是一个string类型的数组。
String[] stttp=sttt.split("-");
for (int i = 0; i <stttp.length ; i++) {
System.out.print(stttp[i]+",");
}
// System.out.println(sttt.charAt(sttt.length()));这个超出了字符串的长度,就是会报错StringIndexOutOfBoundsException。通过序号找到字符。当访问的字符串中的字符时,如果字符的索引不存在,就会发生
StringIndexOutOfBoundsException 超过边界。(字符串角标越界异常)运行时异常。
/*
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 10
at java.lang.String.charAt(String.java:658)
at com.java.api.StringCreate.main(StringCreate.java:72)
*/
}
}
5.1 String和StringBuffer
5.1.1 String
创建方式:2种 直接使用字符串常量 调用String类构造函数
实例方法:
与序号相关 可以通过序号获取相应字符 也可以通过字符获取序号
字符串对象不可变 但是通过转换可以生成新的对象
逻辑判断
subString 两个参数的形式 包含开头 不包含结尾
split 切割机 切割结果不包含切割符号
通过偏移访问字符串 当大于等于字符串长度时 发生运行时异常 程序中断
5.1.1 StringBuffer
特点:长度 内容 可以变化
实例方法:
添加 尾部追加 中间插入
删除:单个删除 区间删除
转换:单个替换 区间替换
5.1.3
相同点:一串有序的字符
不同点:
长度内容不可变 可变
重写equals方法 没重写
可以使用+ 不能
5.2 System和Runtime
5.2.1 System
系统属性相关:getProperties getProperty(String key)
时间相关:返回值long 代表从19**到现在的时间间隔
数组copy:可能发生数组越界异常
5.2.2:Runtime
功能:对应当前JAVA程序对应的虚拟机环境,可以获取JAVA虚拟机占据的内存等信息
5.3 Math和Random
5.3.1:Math
功能:你叫复杂的数学运算
5.3.2:Random
功能:用于产生随机数
注意:固定种子 生成随机数的序列是一样的(序列中的数字是不一样的)
5.4 包装类
定义:和基本数据类型对应的Class
功能:让一切皆对象的编程思想进一步得到体现
相互转换:
装箱
拆箱