String 概述

概述:

str是一个类类型变量,“abc”是一个对象。

str有一个对象,str2中有两个对象。

功能:String类适用于描述字符串事物。提供了多个方法对字符串进行操作。

操作有哪些:

1.获取。

2.判断。

	public static void main(String[] args) {
		method_get();
		method_is();
	}
	public static void method_is() {
		String str = "ArrayDemo.java";
		//判断文件名称是否是Array单词开头。
		sop(str.startsWith("Array"));
		//判断文件名称是否是.java的文件。
		sop(str.endsWith(".java"));
		//判断文件中是否包含Demo。
		sop(str.contains("Demo"));
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
	public static  void method_get() {
		String str = "abcdef";
		sop(str.length());
		sop(str.charAt(2));
		//获取角标为2的元素值,访问字符中不存在的角标是会出现角标越界异常
		sop(str.indexOf('a'));
		//a所在字符串中角标是多少('a',3)的意思是从角标为3的元素往后找a,找不到则返回-1.
		sop(str.lastIndexOf('e'));
		//反向查找角标还是从左边数。
	}
}

转换:

public static void method_trans() {
		char [] arr = {'a','b','c','d','e'};
		String s = new String(arr,1,3);//打印字符数组中角标为1后边的三个元素。
		sop("s="+s);
		String s1 = "zxcvbnm";
		char [] cha = s1.toCharArray();
		for(int x=0;x<cha.length;x++) {
			sop("cha="+cha[x]);
		}
	}

替换:

public static void main(String[] args) {
		//method_get();
		//method_is();
		//method_trans();
		method_replace();
	}
	public static void method_replace() {//替换
		String s = "hello world";
		String s1 = s.replace('e', 'n');//如果替换的不存在,返回的还是原串
        //String s1 = s.replace("wrold","java");
		sop("s="+s);
		sop("s1="+s1);
	}
public static void main(String[] args) {
		//method_get();
		//method_is();
		//method_trans();
		//method_replace();
		method_split();
	}
	public static void method_split() {//切割
		String s = "zhangsan,lisi,wangwu";
		String [] arr = s.split(",");
		for(int x = 0;x < arr.length;x++) {
			sop(arr[x]);
		}
	}

s.substring(0,s.length);获取整个串。如果获取的字符超出会出现越界。

public static void main(String[] args) {
		//method_get();
		//method_is();
		//method_trans();
		//method_replace();
		//method_split();
		method_sub();
	}
	public static void method_sub() {//获取子串
		String s = "abcde";
		sop(s.substring(2, 4));//包含头不包含尾
		sop(s.substring(2));//从指定开始到结尾
	}

public static void main(String[] args) {
		//method_get();
		//method_is();
		//method_trans();
		//method_replace();
		//method_split();
		//method_sub();
		method_7();
	}
	public static void method_7() {
		String s = "  heLLo   wolld";
		sop(s.toUpperCase());
		sop(s.toLowerCase());
		sop(s.trim());//去除字符串两端的空格
		String s1 = "acc";
		String s2 = "aaa";
		sop(s1.compareTo(s2));
	}

常见功能String添加:

 

public static void main(String[] args) {
		StringBuffer sb = new StringBuffer();
		sb.append("abc").append(true);
		sb.insert(1, "qq");//在指定位置添加
		sop(sb.toString());
		
	}	
	public static void sop(String str) {
		System.out.println(str);
	}
}

public static void main(String[] args) {
		//method_add();
		method_del();
	}	
	public static void method_del() {
		StringBuffer sb = new StringBuffer("abcde");
		sb.delete(1, 3);
		sb.delete(0,sb.length());//清空缓冲区
		sop(sb.toString());
	}

public static void main(String[] args) {
		//method_add();
		//method_del();
		method_updata();
	}	
	public static void method_updata() {
		StringBuffer sb = new StringBuffer("abcde");
		//sb.replace(1, 3, "qq");
		sb.setCharAt(1, 'q');
		sop(sb.toString());
	}

public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("abcdef"); 
		char [] chs = new char[4];
		sb.getChars(1, 4, chs, 1);
		for(int x=0;x < chs.length;x++) {
			sop("chs["+x+"]="+chs[x]+":");
		

练习:

去除字符串两端的空格练习:

public static void main(String[] args) {
		String s = "   abc  de   ";
		sop("("+s+")");
		s = myTrim(s);
		sop("("+s+")");
	}
	public static String myTrim(String str) {
		int start = 0,end=str.length()-1;
		while(start<=end && str.charAt(start)==' ')
			start++;
		while(start<=end && str.charAt(end)==' ')
			end--;
		return str.substring(start, end+1);//因为substring不包含尾所以要加1
	}
	public static void sop(String str) {
		System.out.println(str);
	}
}

将字符串反转:

public static void main(String[] args) {
		String s = "   abc  de   ";
		sop("("+s+")");
//		s = myTrim(s);
//		sop("("+s+")");
		sop("("+reverseString(s)+")");
		
	}
	public static String reverseString(String s) {
		//第一步将字符串变成数组。
		char chr[] = s.toCharArray();
		//反转数组
		reverse(chr);
		//将数组变成字符串
		return new String(chr);	
	}
	private static void reverse(char[] arr) {//反转
		for(int start=0,end=arr.length-1;start<end;start++,end--) {
			swap(arr,start,end);
		}
	}
	private static void swap(char[] arr,int x,int y) {//反转后赋值
		char temp = arr[x];
		arr[x]=arr[y];
		arr[y]=temp;
	}
public static void main(String[] args) {                //反转单个元素和反转字符结合
		String s = " abc de ";
		sop("("+s+")");
//		s = myTrim(s);
//		sop("("+s+")");
		//sop("("+reverseString(s)+")");
		sop("("+reverseString(s)+")");				
	}
	public static String reverseString(String s,int start,int end) {
		//第一步将字符串变成数组。
		char chr[] = s.toCharArray();
		//反转数组
		reverse(chr,start,end);
		//将数组变成字符串
		return new String(chr);	
	}
	public static String reverseString(String s) {
		return reverseString(s,0,s.length());	
	}
	private static void reverse(char[] arr,int x,int y) {//反转
		for(int start=x,end=y-1;start<end;start++,end--) {
			swap(arr,start,end);
		}
	}
	private static void swap(char[] arr,int x,int y) {//反转后赋值
		char temp = arr[x];
		arr[x]=arr[y];
		arr[y]=temp;
	}

获取一个字符串在另一个字符串中出现的次数。

public static void main(String[] args) {		
		String str = "kkabkkcdkkef";
		sop("count="+getSubCount(str,"kk"));//复杂因为要获取字符串
		sop("count="+getSubCount_2(str,"kk"));//简单只获取key在字符串中的位置
		sop("count====="+str.split("kk").length);//不建议会出现次数加1
	}
	public static int getSubCount_2(String str,String key) {
		int count = 0;
		int index = 0;
		while((index=str.indexOf(key,index))!=-1) {
			sop("index="+index);
			index = index+key.length();
			count++;
		}
		return count;
	}
	public static int getSubCount(String str,String key) {
		int count = 0;
		int index = 0;
		while((index=str.indexOf(key))!=-1) {
			sop("str="+str);
			str=str.substring(index+key.length());
			count++;
		}
		return count;
	}
	public static void sop(String str) {
		System.out.println(str);
	}
}

字符串练习查找两个字符中相同的字符:

public static void main(String[] args) {
			String s1 = "qwqeqeqehelloqwqeq";
			String s2 = "xfhelloxs";
			sop(getMaxSubString(s1,s2));
		}
		public static String getMaxSubString(String s1,String s2) {
			String max="",min="";
			max = (s1.length() > s2.length())?s1:s2;
			min = (max==s1)?s2:s1;
			for(int x = 0;x < min.length();x++) {
				for(int y = 0,z=min.length()-x;z!=min.length()+1;y++,z++) {
					String temp=min.substring(y,z);
					if(max.contains(temp))
						return temp;
				}
			}
			return"";
		}
		public static void sop(String str) {
			System.out.println(str);
		}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值