Java常用类--字符串

==操作符与equals方法

用"=="进行比较时,符号两边的数据类型必须一致(可自动转换的基本数据类型除外),否则编译出错;

是Object类的方法,由于所有类都继承Object类,也就继承了equals()方法。只能比较引用类型,在Object类的定义中,其作用与“==”相同,比较是否指向同一个对象(同一地址)。格式:obj1.equals(obj2)

toString()方法在Object类中定义,其返回值是String类型,内容为类名以及该对象的引用地址。 在进行String与其它类型数据的连接操作时,自动调用toString()方法。

例如:     Date now=new Date();     System.out.println(“now=”+now);        相当于     System.out.println(“now=”+now.toString());

重写equals方法的Demo

/**
 * object类中equals方法的重写。
 * @author Administrator
 *
 */
public class Demo2 {
	
	private int id;
	private String name;
	
	@Override
	public boolean equals(Object obj) {
		// 非空
		if(obj == null) {
			return false;
		}
		if(!(obj instanceof Demo2)) {
			return false;
		}
		Demo2 demo2 = (Demo2)obj;
		if(demo2.getId() == this.getId() && demo2.getName().equals(this.getName())) {
			return true;
		}
		
		return false;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static void main(String[] args) {
		
		// object 中的比较
		Demo2 demo1= new Demo2(); // 实例1
		demo1.setId(1);
		demo1.setName("zhang");
		Demo2 demo2= new Demo2();  // 实例2
		demo2.setId(1);
		demo2.setName("zhang");
		
		System.out.println(demo1 == demo2); // false
        //重写之前是false,重写之前调用的是object的equals方法,源码用的是==,比对的是地址
		System.out.println(demo1.equals(demo2)); // true
	}
}

字符串类的常用方法Demo

/*
         * String str1 = "abc";可能创建一个或者不创建。 首先会在常量区中查找abc,如果找到abc,就把abc字符串引用地址赋给str1.
         * 如果没有找到,就把abc放到常量区,然后在内存中开辟一个str1的空间,存放引用地址。
         * 
         * new String("abc"); 可能创建一个或者两个。它首先也会去常量区(缓存区)里边查找 不管有没有 它都会在堆里新建一个 如果缓冲区里面没有 则在缓冲区里面也新建一个·。
         * 
         * 总结:字符串使用建议选择  String str = “”;
         */

例如string s=“tt”
string s1=“tt” s等于s1
而 string s=new string(“ss”)
string s1=new string(“ss”) s不等于s1

public class Demo4 {
	public static void main(String[] args) {
		// 一个字符串常量,存放在字常量区。
		String str1 = "慧与实训中心"; 
		
		String str2 = "慧与实训中心";
		String str3 = new String("慧与实训中心");
		
		System.out.println(str2 == str3);
		System.out.println(str1 == str2); // 
		System.out.println(str1.equals(str2));
		//1、字符串的比较,== equals方法
		
		// new String("");   = "";
		
		
		String s = "abc";
		// 字符数组
		char[] charArray = s.toCharArray();
		
		// 1\替换字符串 replace();  正则表达式
		String s1 = s.replace("b", "123");
		System.out.println(s);
		System.out.println(s1);//a123c
		
		//2\判断字符串是否包含指定字符串。contains()
		String string1 = "abcef";
		boolean flag = string1.contains("a");
		boolean flag1 = string1.contains("a1");
		System.out.println(flag + " " + flag1);//flag=true,flag1=false
		
		// 3\比较字符的大小, ASCII码字典的顺序索引,相等返回0,前面小于后面返回一个负数,大于返回一个正数
		String string2 = "abc";
		String string3 = "ac";
		int c1 = string2.compareTo(string3);//返回一个负数
        int c2 = string3.compareTo(string2);//返回一个正数
        system.out.println(c2);
		System.out.println(c1);

		//  4\ indexof获取字符串或字符第一次出现的位置下标 lastindexof 字符串或字符最后一次出现的位置下标
		String str4 = "中华人民,共和国,合同法";
		int f1 = str4.indexOf(',');
		int l1 = str4.lastIndexOf(',');
		System.out.println(f1 + " " + l1);//f1=4,l1=8
		
		// 5\substring指定索引位置,截取字符串。
		String newStr1 = str4.substring(4);//截取下标为4及其后面的字符
		System.out.println(str4.substring(str4.indexOf(',') + 1,str4.lastIndexOf(',')));//共和国
		
		System.out.println(str4.substring(0,str4.indexOf(',')));
		// 6\ length();
		// 7\根据指定字符,转化成数组。split(); 正则表达式
		// 设计的“,”分割.   |  ^ -  ||
		String str5 = "呵呵-你好-再见-在吗,今天去吃晚饭";
		String[] array = str5.split("-");
		System.out.println(array.length);//4
		for (int i = 0; i < array.length; i++) {
			String temp = array[i];
			System.out.println(temp);
		}
		
		// 8\去掉空格  “ 你好 , 在吗  ”  ==>  "你好 , 在吗"
		String str6 = " 你好 , 在吗  ";
		String str7 = str6.trim();
		System.out.println(str7);
		
		// 9\charAt,获取一个下标的字符
		char c = str4.charAt(1);
		System.out.println(c);
		
		// 10\concat字符串 拼接     "我爱" + "学习";===》  "我爱学习" 
		String str8 = "我爱".concat("学习");// sql
		System.out.println(str8);
		
		
		
	}

 stringbuffer类演示

import java.util.Iterator;
public class Demo1 {
	public static void main(String[] args) {
		// 
		StringBuffer sb = new StringBuffer();
		// select * from tb_user where id = '123' and name = 'zhang'
		String id  = args[0];
		String name = args[1];
		sb.append(" select * from tb_user ");
		sb.append(" where id = '");
		sb.append(id);
		sb.append("' and name = '");
		sb.append(name);
		sb.append("' ");
		System.out.println(sb);
		
		// 拼接json数据  【{“id”:“123”,“name”:“zhangsan”},{“id”:“123”,“name”:“zhangsan”}】
		Person[] ps = new Person[3];
		Person p1 = new Person();
		p1.id = 1;
		p1.name = "zhangs1";
		Person p2 = new Person();
		p2.id = 2;
		p2.name = "zhangs2";
		Person p3 = new Person();
		p3.id = 3;
		p3.name = "zhangs3";
		ps[0] = p1;
		ps[1] = p2;
		ps[2] = p3;
		
		StringBuffer sbf = new StringBuffer();
		sbf.append("[");
		for (int i = 0; i < ps.length; i++) {
			Person p = ps[i];
			//【{“id”:123,“name”:“zhangsan”},{“id”:.。。。。。】
			sbf.append("{\"id\":");
			sbf.append(p.id);
			sbf.append(",\"name\":\"");
			sbf.append(p.name+"\"},"); // 
		}
		// [{"id":1,"name":"zhangs1"},{"id":2,"name":"zhangs2"},{"id":3,"name":"zhangs3"},
		sbf.deleteCharAt(sbf.length() - 1);
		sbf.append("]");
		System.out.println(sbf.toString());
		int a = 1;
		
	}
}
class Person{
	public int id;
	public String name;
}

1、包装类: a、面向对象编程思想;b,基本数据类型变量,不能用对象使用的问题。 c、传输过程中对象传输,容器中皆为对象。
 *  int --》 Integer
 * 2、装箱和拆箱的过程 (手动,自动)
 *  基本数据 ---》 对应的包装类 : 装箱
 *  拆箱:  包装类---》对应的基本数据类型
 * 3、 基本数据类型和String类型的转换
 *    一、基本数据类型转化为String类型
 *    a, + "";
 *    b, String.valueof(基本数据类型);
 *    二、String转化基本数据类型(包装类)
 *     包装类.parseXXXX(字符串);

import java.util.*;
public class Demo2 {
	public static void main(String[] args) {
		List list = new ArrayList();
		list.add(1);
		int[] ii = {1,3,4};
		System.out.println(list);
		
		Integer i = new Integer(100);
		int sum1 = 12 + i.intValue();  // 手动的拆箱
		int sum = 12 + i;  // 自动拆箱
		
		
		System.out.println(12 + "12"); // 1212
		String a = 12 + "";
		int b = 100;
		String.valueOf(b);
		Integer bb = new Integer(b);
		String bbStr = bb.toString();
		String abc = "3.1415";
		Double  s = Double.parseDouble(abc);
		
		System.out.println(12 + "");
		
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值