java找出字符串不同处-java 找出字符串相同
一、java异常处理
1、java所有类均继承自Object类,java.lang包中的异常类Throwable类亦如此。其派生出两个子类:Error类和Exception类。其中Error类主要处理运行环境的异常,而Exception类则是可以被抛出的异常类型,接下来主要讨论这个类。Exception分为RunTimeExcepiton和其他Exception。RunTimeExcepiton称为运行时异常,例如空指针异常、算术异常等。
2、java通过try-catch或try-catch-finally处理异常。并且可以同时捕获多种不同类型的异常。捕获异常时,可以通过printStackTrace()打印异常的错误信息。finally表示在处理异常后要做的动作,例如关闭某某连接等。
try{ //一些会抛出异常的方法 }catch(Exception1 e){ //子类异常在前面处理 }catch(Exception2 e){ //子类异常在前面处理 }catch(Exception e){ //e.printStackTrace(); //Exception为父类异常,应在最后处理 }finally{ //最终要执行的代码 }
二、java的字符串
3、String类是引用类型,java每一个字符串都是一个对象。String类对象创建后不能被修改,所谓的修改其实是创建了新的对象,所指向的内存空间不同。
String s1 = "字符串测试"; s1 = "java" + s1;
上面的代码先是声明了一个字符串对象s1,s1存放了到字符串对象的引用,然后第二行代码改变了s1,其实质是创建了新的字符串对象,变了s1指向了新创建的字符串对象。
4、“==”比较的是两个对象的内存地址,如果只是想比较两个字符串对象的内容是否相同,可以使用equals()方法。
5、但如果需要一个可以改变的字符串对象,可以用StringBuilder类创建。该类提供了多个方法用于操作字符串。例如append()用于追加内容到当前对象的末尾,insert()用于将内容插入到当前对象的指定位置,length()用于获取字符串的长度,toString()用于将当前对象转换为String对象,等等。
三、java的常用类
6、基本数据类型不具备对象的特性,无法调用方法。为了让基本数据类型也具备对象的特性,java为每个基本数据类型都提供了一个包装类,这样就能像操作对象那样来操作基本数据类型。每个包装类都提供了本类和其他基本数据类型进行转换的方法,例如Integer类,提供了floatValue()、intValue()、toString()等方法,用于将Integer类型转为对应的基本数据类型。
基本数据类型
对应的包装类
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean
7、java.util.Calendar类是一个抽象类,可以通过调用getInstance()静态方法获取一个Calendar对象,此对象用于获取当前日期和时间。
Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); //年 int month = c.get(Calendar.MONTH) + 1; //月,0表示1月份 int day = c.get(Calendar.DAY_OF_MONTH); //日 int hour = c.get(Calendar.HOUR_OF_DAY); //小时 int min = c.get(Calendar.MINUTE); //分钟 int sec = c.get(Calendar.SECOND); //秒
8、Math类位于java.lang包中,包含用于执行基本数学运算的方法,Math类的所有方法都是静态方法,可以直接用类名访问,例如Math.round()。除了round()用于四舍五入后取整,还有,floor()返回小于参数的最大整数,ceil()返回大于参数的最小整数,random()返回[0,1)之间的随机浮点数。
9、Collection集合接口继承自Iterable接口,Iterable接口有一个Iterator接口型的方法iterator()。Collection接口的所有集合类都实现了该方法,在该方法里实现了Iterator接口的所有方法。Iterator接口是一个迭代器,是所有java集合的顶层接口,其有三个接口方法:
//Collection接口的集合类ArrayList //用<>表示泛型,限制该序列只能存放规定的类型及其子类型的对象 //String是引用类型,java中每个字符串都是一个对象。 ListlistTest = new ArrayList (); listTest.add("Jack"); //添加第一个元素 listTest.add("Tom"); //添加第二个元素 listTest.add("Bob"); //添加第三个元素 Iterator it = listTest.iterator(); //构造listTest对象的迭代器 //通过迭代器遍历元素 while(it.hasNext()){ String obj = it.next(); System.out.println(obj); }
10、Collection 接口主要派生出List、Set、Queue等几个常用集合接口:
11、List接口有两个比较常用的实现,ArrayList类和LinkedList类:
12、ArrayList类有几个比较常用的增删改查方法,如get()、set()、add()、addAll()、remove()、removeAll()、size()、contains()、containsAll()等。
String[] s = {"aaa","bbb"}; //定义一个数组,用于测试addAll() listTest.add("cjt"); //在序列最后添加元素“cjt” listTest.add(2, "chenjt"); // 在索引为2的位置,添加“chenjt” listTest.addAll(Arrays.asList(s)); //该方法接收一个Collection类的具体实例 listTest.addAll(2, Arrays.asList(s));//将数组添加到索引为2的位置 listTest.remove(0); //删除第一个索引位置的元素 listTest.removeAll(Arrays.asList(s)); //删除数组s包含的所有元素 listTest.set(0, "ddd"); //修改索引为0位置上的序列元素值 listTest.get(0); //获取listTest序列对象的第一个元素 listTest.size(); //获取序列长度 listTest.contains(listTest.get(0)); //是否包含某个对象,返回boolean值
13、可以用for循环的方式遍历List序列的元素。
/*for循环*/ public void getTest(){ int len = listTest.size(); String temp; for(int i=0; i14、Set接口有一个实现类是HashSet类。该类有几个常用的增删查的方法,如add()、addAll()、remove()、removeAll()、size()等(Set是无序的,所以没有List中诸如get()、set()方法)。用法和ArrayList类的方法一致。
SetsetTest = new HashSet (); setTest.add("hahaha"); // 向setTest对象添加元素 System.out.println(setTest); 五、Map接口
15、Map接口提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value。Map中的键值对以Entry类型的对象实例形式存在。key值不可重复,value值可以重复。
16、Map支持泛型,形如:Map。
17、Map接口提供了几个常用的方法,如put()、get()、keySet()、entrySet()、getKey()、getValue()、size()、containsKey()、containsValue()等。
Mapstu = new HashMap (); //添加一个键值对,如果要修改某个已存在键的对应value值,也是用这个方法 stu.put("01","chenjt"); stu.put("02","zhangxh"); stu.put("03","cjt"); stu.put("04","hah"); stu.remove("04"); //成功删除key为04的键值对 stu.size(); //获取stu对象的长度 Object str1 = stu.get("02"); //获取key为02的值 System.out.println("key为02的value值为:" + str1); //判断某个key是否已存在 System.out.println("该key是否已存在:" + stu.containsKey("03")); //判断某个value是否已存在 System.out.println("该value是否已存在:" + stu.containsValue("zhangxh")); Set stuKey = stu.keySet(); //获取所有的键 String stuName; for(String stuId : stuKey){ stuName = stu.get(stuId); System.out.println("key值:" + stuId); System.out.println("value值:" + stuName); } Set > entrySet = stu.entrySet(); //取得所有键值对 for(Map.Entry entry : entrySet){ System.out.println("取得键:" + entry.getKey()); //取值 System.out.println("取得值:" + entry.getValue());//取值 } 六、Collections工具类
18、Collections.sort()用于对List进行排序。
七、Comparable和Comparator接口
19、Comparable接口定义了默认的比较规则,可以进行自然排序。其实现类必须实现compareTo()方法,该方法返回正数表示大java找出字符串不同处java找出字符串不同处,负数表示小,0表示相等。
20、Comparator接口用于定义临时的比较规则,其实现类需要实现compare()方法。