string的构造方法和普通方法

string的构造方法和普通方法

构造方法

  • 1 无参数: String()
  • 2 参数是数组:
    String(byte[] bytes):把数组按默认编码集转化为字符串
    String(byte[] bytes, String charsetName):把数组按指定编码集转化为字符串
    数组可以是byte、char、int
  • 3参数是字符串:Sting(String original): 创建一个参数字符串的副本对象
	public static void main(String[] args) throws UnsupportedEncodingException {
		//1 通过无参数的创建字符对象
		String s=new String();//创建一个空序列的字符串对象
		String ss="";//通过""创建一个空字符序列的字符串对象
		System.out.println(ss==s);//判断是不是同一个对象:用==
        System.out.println(ss.equals(s));
        s=new String();//通过new创建一个空序列的字符串对象
        s="";//通过""创建一个空序列的字符串对象
        s=null;//s引用没有指向任何对象  地址栏值为常量null
        s=" ";//通过""创建一个有空格字符的字符对象
        //2 通过数组创建字符串对象
        byte[] arr= {1,2,3,4,5,8,9};
        s=new String(arr);//通过默认编码集::
        s=new String(arr,"UTF_8");//通过默认编码集::
        System.out.println(s);//CEdezgg
        
        //3 创建副本对象
           s=new String("abcd");//创建了俩个字符串对象:先通过双引号创建一个字符串对象"abcd"
                             //再通过new关键字创建字符串的副本对象

2.3 普通方法

public class Demo02String {
	public static void main(String[] args) throws Exception {
		//判断:
		//1.1  boolean coutains(String s):判断当前字符串是否包含参数字符串
		System.err.println("abc".contains("ab")+":"+"abc".contains("ac"));
		//1.2  boolean endsWith(String s) //判断是否以参数字符串结尾
		//     boolean startsWith(String s)//判断是否以参数字符串开头
		System.out.println("abc".endsWith("bc"));
		//1.3  boolean equals(Object anObject)//判断当前字符串和参数字符串字符序列是否相同
		//     boolean equalsIgnoreCase(String anotherString) //不区分大小写
		System.out.println(new String("123").equals(new String("123")));//判断序列是否相同
		System.out.println(new String("123")==new String("123"));//判断是不是同一个对象
		//1.4  boolean isEmpty() :是不是空序列(没有字符)
		System.out.println(" ".isEmpty()+":"+"".isEmpty());
		//1.5  int compareTo(String s) :按字典顺序拿当前字符串和参数字符串逐个字符比较
//		       int compareToIgnoreCase(String s)
		       //当前字符串大  返回整数   当前字符串小  返回负数   相同 返回0
		System.out.println("abc".compareTo("abc"));//0
		System.out.println("abc1".compareTo("abc"));//1
		System.out.println("a1234".compareTo("abc"));//-49
		
		
		//获取:
		//2.1  int length() : 获取字符个数
		//2.2  char charAt(int index) :  获取参数下标处的字符
		//遍历字符串方式 1: 通过charAt
		String s="abc123";
		for (int i = 0; i < s.length(); i++) {
			System.out.println(s+".charAt("+i+")="+s.charAt(i));
		}
		//2.3  byte[] getBytes()  : 获取一个字节数组 默认编码集
		//     byte[] getBytes(String charsetName)  :指定编码表
		//     utf-8中 1个中文字符=3byte   gbk中 1个中文字符=2byte
		byte[] arr="a1胡".getBytes("UTF-8");//97,49,-24,-125,-95
		arr="a1胡".getBytes("GBK");//97,49,-70,-6
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+(i==arr.length-1?"\n":","));
		}
		//2.4  int indexOf(int ch) :获取参数字符第一次出现的下标:如果不存在参数字符  返回-1
//		       int indexOf(int ch, int fromIndex):从fromIndex处开始,获取参数字符第一次出现的的下标
//		       int indexOf(String str):获取参数字符串第一次出现的下标 
//		       int indexOf(String str, int fromIndex) :从fromIndex处开始
//		       int lastIndexOf(int ch) :倒着找
//		       int lastIndexOf(int ch, int fromIndex)  
//		       int lastIndexOf(String str)  
//		       int lastIndexOf(String str, int fromIndex)  
		s="abcabc123abcabc";
		System.out.println(s.indexOf('a'));
		System.out.println(s.indexOf('a', 1));
		System.out.println(s.indexOf('a', 4));
		System.out.println(s.indexOf('9'));//不存在字符9 返回-1
		showCharIndex("abaababab11211aaaa",'a');
		System.out.println("abc123abc123".indexOf("123"));//3
		System.out.println("abc123abc".lastIndexOf('a'));//6
		
		//2.5  String[] split(String regex) :
		s="aaabcab123aaaab00ab--aaaa";
		String [] array=s.split("a");
		for (int i = 0; i < array.length; i++) {
			System.out.println("array["+i+"]="+array[i]);
		}
		//2.6  CharSequence subSequence(int beginIndex, int endIndex) :截取字串[beginIndex,endIndex)
//		       String substring(int beginIndex)  
//		       String substring(int beginIndex, int endIndex)
		System.out.println("abcdefg".subSequence(1, 4));//bcd
		System.out.println("abcdefg".substring(1));//bcdefg
		//2.7  char[] toCharArray() :由当前字符串获取一个字符数组
		//遍历字符串格式方式2:通过toCharArray
		s="abcdefg";
		char[] chars=s.toCharArray();
		for (int i = 0; i < chars.length; i++) {
			System.out.println("char["+i+"]="+chars[i]);
		}
		
		//转化:
		//3.1  String concat(String str) :字符串拼接  完全等价于+
		String s1="123";
		String s2=s1.concat("abc");
		System.out.println(s2);//123abc
		System.out.println(s1==s2);//false
		System.out.println("123"+"abc"+"12");
		//3.2  String replace(char old, char new)  
//		       String replace(String old, String new)
		System.out.println("abc123abc123abc789".replace('a', '-'));
		System.out.println("abc123abc123abc789".replace("abc", "d"));
		System.out.println("abc123abc123abc789".replace("abc", ""));
		//3.3  String toLowerCase() :转化为大写
//		       String toUpperCase() :转化为小写
		//3.4  String trim() :去掉俩边的空格
		s="  123  abc  ";
		System.out.println("\""+s.trim()+"\"");//"123  abc"
  }
	//打印参数字符串中参数字符出现的所有下标
     private static void showCharIndex(String s, char c) {
	       //循环找字符c出现的下标:: 直到下标为-1
    	   //从上一次找到的下标+1处开始找
    	 int index=0;//定义变量记录 查找的开始下标
    	 int time=0;//定义变量记录找到的次数
    	 while (true) {
			index=s.indexOf(c,index);
			if (index==-1) {
				return;
			}
			time++;
			System.out.println(s+"第"+time+"个"+c+"字符出现的下标是:"+index);
			index++;//下次从index+1处开始找
		}
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值