Java中String类的学习

String类

public class StringTest3 {
	public static void main(String[] args) {
		String a = "hello  niho ";
		System.out.println("某个位置所在的字符"+a.charAt(0));
		System.out.println("字符转化为大写"+a.toUpperCase());
		System.out.println("字符转化为小写"+a.toLowerCase());
		System.out.println("是否以某个字母为开始"+a.startsWith("a"));
		System.out.println("偏移后是否以某个字母开始"+a.startsWith("e",1));
		System.out.println("是否以某个字母结束"+a.endsWith("o"));
		System.out.println("替换字符"+a.replace("h", "H"));
		System.out.println("替换所有的字符"+a.replaceAll(a, "abcd"));
		System.out.println("字符的长度"+a.length());
		System.out.println("去掉空格"+a.trim());
		System.out.println("截取"+a.substring(0, 3));
		System.out.println("从第三位开始截取"+a.substring(3));
		System.out.println("是否包含某个字符串"+a.contains("h"));
		System.out.println("比较忽略大小"+a.equalsIgnoreCase("HELLO"));
		System.out.println("获得字节数"+a.getBytes());
		System.out.println("按字典排序比较"+a.compareTo("a"));
		System.out.println("按字典排序比较忽略大小"+a.compareToIgnoreCase("abc"));
		System.out.println("转化成字符串"+String.valueOf(123456));
		System.out.println("字符在某个位置"+a.indexOf("a"));
		
		 /* 
         *使用split()函数 分割字符串时以空格,下划线,中划线,右斜杠,逗号 
         *冒号,分号为分隔符的都可以直接加分隔符输出 
         *以点为分隔符的输出必须加上//.输出 
         */  
        String strSplit = "123 asd erf 345";  
        String[] a = strSplit.split("");  
        String strSplit2 = "123.asd.erf.345";  
        String[] a2 = strSplit2.split("//.");  
        String strSplit3 = "123/asd/erf/345";  
        String[] a3 = strSplit3.split("/");  
        for(int i=0;i<a3.length;i++){  
            System.out.println(a3[i]);  
        }  
	}
}
public class Student extends Object{
	String name;
	String grade;
	
	@Override
	public boolean equals(Object obj) {
		//判断某个类是否为空
		if(obj == null){
			return false;
		}
		
		//内存地址的比较
		if(this == obj){
			return true;
		}
		
		//向下转型
		Student student = (Student)obj;
		return this.name.equals(student.name) && this.grade.equals(student.grade);
	}
}

public class Test {
    public static void main(String[] args) {
        
      Student student = new Student();
        student.name = "张三";
        student.grade = "一年级";
        
        Student student2 = new Student();
        student2.name = "张三";
        student2.grade = "一年级";
        
        Student student3 = student2;
        
        System.out.println(student.equals(student2));//t
        System.out.println(student2.equals(student3));//t
        System.out.println(student.equals(student3));//t
        System.out.println(student.equals(null));//f
        
    }
}




import java.util.Scanner;


  //判断输入的是否是网址
 public class Url {

	public static void main(String[] args) {
	    System.out.println("请输入一个网址");
            Scanner scanner=new Scanner(System.in);
            String url=scanner.nextLine();
            System.out.println(IsUrl(url));;
            scanner.close();
	}
	
	public static String IsUrl(String url){
		if (url.startsWith("http")||url.startsWith("https")) {
			int number=url.indexOf(':');
			return url.substring(number+1);
			
		}else {
			System.out.println("網址輸入錯誤");
			return null;
		}
	}

}
StringBuffer与StringBuilder

public class StringBuilderTest {
	public static void main(String[] args) {
		StringBuilder builder = new StringBuilder("123455");
		System.out.println("添加"+builder.append("1"));
		System.out.println("删除"+builder.delete(2, 4));
		System.out.println("在指定位置删除"+builder.deleteCharAt(0));
		System.out.println("在指定位置添加"+builder.replace(1, 2, "hello"));
		builder.setCharAt(1, 'w');
		System.out.println("转换成字符串输出"+builder.toString());
		System.out.println("倒置"+builder.reverse());
	}
}

StringBuffer

字符串的组成原理就是通过该类实现的。
StringBuffer可以对字符串内容进行增删。
StringBuffer是一个容器,线程同步的。通常用于多线程
很多方法与String相同。
StingBuffer是可变长度的

常见StringBuffer 方法
StringBuffer append(int x);
StringBuffer delete(int start, int end );
StringBuffer insert(int index,String str);
StringBuffer reverse();


public class StringBufferTest {  
  
    /** 
     * @param args 
      
      * jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder 
         *  
         * 不同的是: 
         * StringBuffer是线程同步的。通常用于多线程。 
         * StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。 
         *  
         * jdk升级: 
         * 1,简化书写。 
         * 2,提高效率。 
         * 3,增加安全性。 
         */  
     */  
    public static void main(String[] args) {  
  
        /* 
         * StringBuffer:就是字符串缓冲区。 
         * 用于存储数据的容器。 
         * 特点: 
         * 1,长度的可变的。  
         * 2,可以存储不同类型数据。 
         * 3,最终要转成字符串进行使用。 
         * 4,可以对字符串进行修改。 
         *  
         *  
         * 既然是一个容器对象。应该具备什么功能呢? 
         * 1,添加: 
         *      StringBuffer append(data); 
         *      StringBuffer insert(index,data); 
         * 2,删除: 
         *      StringBuffer delete(start,end):包含头,不包含尾。 
         *      StringBuffer deleteCharAt(int index):删除指定位置的元素  
         * 3,查找: 
         *      char charAt(index); 
         *      int indexOf(string); 
         *      int lastIndexOf(string); 
         * 4,修改: 
         *      StringBuffer replace(start,end,string); 
         *      void setCharAt(index,char); 
         *  
         * 增删改查  C(create)U(update)R(read)D(delete)  
         *  
         *  
         *  
         */  
        bufferMethodDemo_2();  
    }  
      
    private static void bufferMethodDemo_2() {  
        StringBuffer sb = new StringBuffer("abce");  
          
//      sb.delete(1, 3);//ae  
          
        //清空缓冲区。  
//      sb.delete(0,sb.length());  
//      sb = new StringBuffer();  
          
//      sb.replace(1, 3, "nba");  
//      sb.setCharAt(2, 'q');  
          
//      sb.setLength(10);  
          
//      System.out.println("sb:"+sb);  
//      System.out.println("len:"+sb.length());  
          
        System.out.println(sb.reverse());  
          
          
    }  
  
    private static void bufferMethodDemo_1() {  
        StringBuffer sb = new StringBuffer("abce");  
          
//      sb.append("xixi");  
        sb.insert(2, "qq");  
          
        System.out.println(sb.toString());  
    }  
  
    public static void bufferMethodDemo(){  
        //创建缓冲区对象。  
        StringBuffer sb = new StringBuffer();  
          
        sb.append(4).append(false);//.append("haha");  
        sb.insert(1, "haha");  
//      sb.append(true);  
          
        System.out.println(sb);  
          
    }  
      
      
  
}  



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值