黑马程序员----String字符串、内部类和异常

来源:互联网 发布:斑马梦龙网络计划介绍 编辑:程序博客网 时间:2024/05/22 09:05

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、String字符串

在写JAVA程序时,常常用到字符串,字符串和变量不同,它一旦被初始化,就无法改变,对于字符串 String sJAVA给出了增删改查的方法,主要有:

String s=new String("abcabcabc");//获取字符串的长度s.length();//获取s的第4个位置的字符,注意字符串s和数组一样,首个字符是第0个;s.charAt(0);//根据字符获取位置,c后可加数字n,表示从n开始往后寻找s.indexOf("c");//反向索引(从最后开始寻找位置)s.lastIndexOf("a");//判断字符串内容是否相同s.equals("abc");//判断内容是否相同并忽略大小写s.equalsIgnoreCase("abcABCABC");//判断是否包含c,返回一个booleans.contains("c");//判断是否为空s.isEmpty();//判断是否以a开头s.startsWith("a");//判断是否以a结尾s.endsWith("a");//将数组转换成字符串 char []arr=new char[1024];         String s2=new String(arr);                     //替换,返回一个字符串,此字符串是在s的基础上将a替换成b,注意字符串s并未被修改,而是产生了一个新的字符串。         s.replace("a","b");                  //获取字符串的一部分(从3开始往后)         s.substring(3);         //获取字符串的一部分(包含3,不包含8)         s.substring(3, 8);                  //将字符串s转成大写或小写         s.toUpperCase();//大写         s.toLowerCase();//小写

二、内部类

将一个类定义在另一个类里面,我们将前者称为内部类,将后者称为外部类,内部类可直接访问外部类的所有成员变量、成员函数,外部类访问内部类时,需要建立内部类对象实例;

另外还有一种内部类是建立在函数内的,叫局部内部类,这种类的作用只能存在函数内。例如

//创建外部类class Outer{//外部类方法public void function(){System.out.println("内部类调用外部类的函数");}//创建内部类class Inner{//内部类构造函数public Inner(){//内部类调用外部类方法function();}//内部类方法public void ifunction(){System.out.println("外部调用内部类的函数");}}//当创建一个内部类,内部类的构造函数会调用外部类方法Inner inner=new Inner();}public class InnerClass {public static void main(String[] args) {//创建一个外部类对象,此时也创建了一个内部类对象inner,内部类的构造函数调用外部类方法Outer outer=new Outer();//外部类调用内部类方法outer.inner.ifunction();}}

三、异常

在写程序时,常常会遇到代码异常的问题,有些是硬性的错误,需要我们修改代码,有些是可以使用JAVA自带的解决方法解决的。JAVA自带的解决异常的方法有2种,第一种是在函数名后面加上throws Exception,另一种是用try/catch/finally方法将异常代码包起来,例如:

//此时出现了错误,只需要在函数末尾抛出异常public static void method(File f1,File f2) throws Exception{BufferedReader br=null;BufferedWriter bw=null;br=new BufferedReader(new FileReader(f1));bw=new BufferedWriter(new FileWriter(f2));char []c=new char[1024];int n=0;while((n=br.read(c))!=-1){bw.write(c, 0, n);}}

当然,上诉这种情况,我们也可以使用try/catch/finally的方法来代替,代码如下:

public static void method(File f1,File f2){BufferedReader br=null;BufferedWriter bw=null;try {//出现错误,用try/catch/finally方法抛出异常br=new BufferedReader(new FileReader(f1));bw=new BufferedWriter(new FileWriter(f2));char []c=new char[1024];int n=0;while((n=br.read(c))!=-1){bw.write(c, 0, n);}} catch (Exception e) {e.printStackTrace();} finally{try {//出现错误,用try/catch/finally方法抛出异常bw.close();br.close();} catch (IOException e) {e.printStackTrace();}}}


0 0
原创粉丝点击