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);
}
}


浙公网安备 33010602011771号