Week03_day01 String类

来源:互联网 发布:c语言 大括号 是什么 编辑:程序博客网 时间:2024/06/07 15:23
1.创建字符串的两种方式
1.String str="hello";
2.String str=new String("hello");
1.String str=new String("hello")创建字符串直接new的话,会在堆内存空间中开辟新的内存空间 == 比较地址
2.String str="hello" 如果以这种方式创建的字符串,第一次创建的时候 会在常量池创建一个字符串。





public class DemoString {public static void main(String[] args) {String str="hello";String str1="hello";String str2=new String("hello");String str3=new String("hello");String str4="hell"+"o";System.out.println(str==str1);//        trueSystem.out.println(str==str2);//        falseSystem.out.println(str2==str3);//       falseSystem.out.println(str==str4);//        trueSystem.out.println(str2==str4);//       false}}



2.获取方法
int length() 获取字符串的长度
char charAt(int index) 获取特定位置的字符 (角标越界)
int indexOf(String str) 获取特定字符的位置(overload)
int lastIndexOf(int ch) 获取最后一个字符的位置

public class Demo2 {public static void main(String[] args) {String str="小苍老师VS小泽老师小";System.out.println(str.length());//包括空格//StringIndexOutOfBoundsExceptionSystem.out.println("获取泽的位置:"+str.charAt(7));//下标从0开始System.out.println("vs的下标:"+str.indexOf("VS"));System.out.println("vs的下标:"+str.indexOf("小",1));//从哪个位置开始找System.out.println("获取最后一个字符的位置 小:"+str.lastIndexOf("小"));String str1=new String();//""   null表示引用System.out.println(str1.length());  //0byte[] b={127,65,66,67,68,95,99,100};System.out.println(new String(b));//把字节数组变成字符串System.out.println(new String(b,1,3));//把字节数组变成字符串 65,66,67char[] c={'?','%','~','-'};System.out.println(new String(c));System.out.println(new String(c,1,2));//%','~'}}
2.判断方法
boolean endsWith(String str) 是否以指定字符结束
boolean startsWith(String str) 是否以指定字符开始
boolean isEmpty()是否长度为0如:“”
boolean contains(CharSequences)是否包含指定序列 应用:搜索
boolean equals(Object anObject) 是否相等 把有可能等于空的放到括号里
boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

例如:
public class DemoStr1 {public static void main(String[] args) {String str="今晚吃鸡";//2>4-2/*System.out.println("是否是吃鸡结尾:"+str.endsWith("吃鸡1"));System.out.println("是否是今晚开始:"+str.startsWith("今晚"));*/System.out.println("是否是今晚开始:"+str.startsWith("今晚",1));//str=" ";System.out.println("判断长度是否为0:"+str.isEmpty());System.out.println("是否包含指定序列:"+str.contains("晚1"));//str=null;System.out.println(str.equals("今晚吃"));System.out.println("今晚吃".equals(str));System.out.println("ABC".equalsIgnoreCase("aBc"));//忽略大小写比较}}




3.转换方法
String(char[] value) 将字符数组转换为字符串 构造方法
String(char[] value, int offset, int count)构造函数 //offset表示开始位置下标 count表示字符串长度
Static String valueOf(char[] data)
把8种基本类型变成String
1.String.valueOf(基本数据类型)
2.基本数据类型+""
static String valueOf(char[] data, int offset, int count)
把字符数组变成字符串:
1.构造函数 String(char[] value)
2.valueOf()
char[] toCharArray() 将字符串转换为字符数组
例如: System.out.println(Arrays.toString(str.toCharArray()));

z


4.其他方法
String replace(char oldChar, char newChar) 替换 oldChar 旧串 newChar新串
String[] split(String regex) 切割
String substring(int beginIndex)
String substring(int beginIndex, int endIndex)截取字串前包后不包
String toUpperCase() 转大写
String toLowerCase() 转小写
String trim() 去除空格 只去首尾空格 中间空格不去str.replace(" ","")去掉全部空格

例如:
public class DemoStr3 {public static void main(String[] args) {String str="   Hello World 担担面     ";//l换成XString replace = str.replace("l", "X");//调用String类的任何方法  都不会改变原来的字符串   只会给你生成一个新的字符串System.out.println(str);System.out.println(replace);String[] split = str.split("l");System.out.println(split.length);System.out.println(Arrays.toString(split));System.out.println("得到hell截取:"+str.substring(0, 4));System.out.println("得到hell截取:"+str.substring(6));str=str.toUpperCase();//变大写System.out.println(str);str=str.toLowerCase();//变小写System.out.println(str);String trim = str.trim();System.out.println(trim);//去除首尾空格}}

练习:

public class StringUtils {public static void main(String[] args) {String str="    heljasksdnak   ";System.out.println(StringUtils.trimStr(str));System.out.println(StringUtils.strReverse(str));str="abcdefgabcdefgjjklkl";System.out.println(StringUtils.getCount(str, "ab"));}/** * 1.去除字符串两边空格的函数 */public  static  String   trimStr(String str){//找到首下标  :第一个不是空格的首位的下标//找到尾下标:最后一个不是空格的末尾的下标char[] value = str.toCharArray();int index=0;int end=value.length;//str.length()方法for(int i=0;i<end;i++){if(value[i]!=' '){index=i;break;}}for(end--;end>=0;end--){if(value[end]!=' '){break;}}if(index<=end){return str.substring(index, end+1);}return str;}/** * 2.将字符串对象中存储的字符反序。 reverse() */public static  String strReverse(String str){char[] value = str.toCharArray();char[] result =new char[value.length];for(int i=0;i<value.length;i++){result[i]=value[value.length-i-1];}return String.valueOf(result);}/** * 3.求一个子串在整串中出现的次数 * target子串 */public static  int getCount(String str,String target){//循环~~~int count=0;//个数int index=0;while((index=str.indexOf(target))!=-1){//aaaaaaa     aa//改变strstr=str.substring(index+target.length());//abcdefgabcdefgjjklkl====cdefgabcdefgjjklkl===cdefgjjklklSystem.out.println(str+"||"+count);count++;}return count;}}


原创粉丝点击