JAVA笔记22-常用类
一、String类
java.lang.String类代表不可变的字符序列
String类常见构造方法:(见API文档)
常用方法:
调用:toString()方法,存在多态!
举例:
练习题:
1、编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数和非英文字母数
法一:
public class Test{ public static void main(String args[]){ String s = "AaaadBFAa890Z*"; int lCount=0; int uCount=0; int oCount=0; for(int i=0;i<s.length();i++){ char c = s.charAt(i); if(c>='a'&&c<='z'){ lCount++; }else if(c>='A'&&c<='Z'){ uCount++; }else{ oCount++; } } System.out.println(lCount+" "+uCount+" "+oCount); } }
法二:
public class Test{ public static void main(String args[]){ String s = "AaaadBFAa890Z*"; String sL="abcdefghigklmnopqrstuvwxyz"; //String sU="ABCDEFGHIGKLMNOPQRSTUVWXYZ"; String sU=sL.toUpperCase(); int lCount=0; int uCount=0; int oCount=0; for(int i=0;i<s.length();i++){ char c = s.charAt(i); if(sL.indexOf(c)!=-1){ lCount++; }else if(sU.indexOf(c)!=-1){ uCount++; }else{ oCount++; } } System.out.println(lCount+" "+uCount+" "+oCount); } }
法三:
public class Test{ public static void main(String args[]){ String s = "AaaadBFAa890Z*"; int lCount=0; int uCount=0; int oCount=0; for(int i=0;i<s.length();i++){ char c = s.charAt(i); if(Character.isLowerCase(c)){ lCount++; }else if(Character.isUpperCase(c)){ uCount++; }else{ oCount++; } } System.out.println(lCount+" "+uCount+" "+oCount); } }
2、编写一个方法,输出在一个字符串中,指定字符串出现的次数
public class Test{ public static void main(String args[]){ String s = "javahjavajavadejavdajava"; String sToFind="java"; int count=0; int index; while( (index = s.indexOf(sToFind) ) != -1){ s = s.substring(index+sToFind.length()); count++; } System.out.println(count); } }
二、StringBuffer类
java.lang.StringBuffer代表可变的字符序列。
StringBuffer和String类似,但StringBuffer可以对其字符串进行改变。
StringBuffer类的常见构造方法(见API文档)
常用方法:
举例:
三、基本数据类型包装类
包装类(如Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列的操作。
下面以java.lang.Integer为例,它的构造方法及其他方法(见API文档)
常用方法:
举例:
练习:编写一个方法,返回一个double型二维数组,数组中的元素通过解析字符串参数获得。如字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为:
public class Test{ public static void main(String args[]){ String s = "1,2;3,4,5;6,7,8"; double d[][]; String s1[]= s.split(";"); d = new double[s1.length][]; for(int i=0; i<s1.length; i++){ String s2[] = s1[i].split(","); d[i] = new double[s2.length]; for(int j=0; j<s2.length; j++){ d[i][j] = Double.parseDouble(s2[j]); //d[i][j] = Double.valueOf(s2[j]);//也可以 } } for(int i=0; i<d.length; i++){ for(int j=0; j<d[i].length; j++){ System.out.print(d[i][j]+" "); } System.out.println(); } } }
四、Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。
举例:
五、File类
java.io.File类代表系统文件名(路径和文件名)。
File类常见构造方法和方法(见API文档)
举例:
import java.io.*; public class TestFile{ public static void main(String args[]){ String fileName = "myfile.txt"; String directory = "mydir1/mydir2"; File f = new File(directory,fileName); if(f.exists()){ System.out.println("文件名:"+f.getAbsolutePath()); System.out.println("文件大小:"+f.length()); }else{ f.getParentFile().mkdirs(); try{ f.createNewFile(); }catch(IOException e){ e.printStackTrace(); } } } }
注意:当class在某个包中的时候,getParentFile先找到最上层的包,再找包的上层路径
练习:(递归)编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)
import java.io.*; public class FileTree{ public static void main(String args[]){ File f = new File("E:/javacode/20140424/A"); System.out.println(f.getName()); tree(f,1); } private static void tree(File f,int level){ String preStr = ""; for(int i=0;i<level;i++){ preStr +=" "; } File[] childs = f.listFiles(); for (int i=0;i<childs.length ;i++ ){ System.out.println(preStr+childs[i].getName()); if(childs[i].isDirectory()){ tree(childs[i],level+1); } } } }
六、枚举类型(1.5以后)
java.lang.Enum
枚举类型只能够取特定值中的一个。
举例:
public class TestEnum{ public enum MyColor{red,green,blue}; public static void main(String args[]){ MyColor m = MyColor.red; switch(m){ case red: System.out.println("red"); break; case green: System.out.println("green"); break; default: System.out.println("default"); } System.out.println(m); } }