第六章 01_String_1
(http://blog.csdn.net/jinhongliang123/article/details/7915338)
1 字符串相关类(String,StringBuffer)
Java.lang.String 类代表 不可变 的字符序列
Java.lang.StringBuffer代表可变的字符序列
StringBuffer和String类似,但StringBuffer可以对其字符串进行改变
2 基本数据类型包装类
包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。
以Java.lang.Integer类为例,构造方法
Integer(int value)
Integer(String s)
3 Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double类型
4 File类
Java.io.File类代表系统文件名(路径和文件名) (读写文件通过IO类来操作)
File类的常见构造方法:
public File(String pathname)
以pathname为路径创建File对象,如果pathname为相对路径,则默认的当前路径在系统属性user.dir中存储
public File(String parent, String child)
以parent为父路径,child为子路径创建File对象。
File的静态属性String separator存储了当前系统的路径分隔符
5 枚举类
枚举类型:
只能够取特定值中的一个使用enum关键字
是java.lang.Enum类型
实例:(马士兵)
/*范例名称:
* 原文件名称:
* 要点:
* 1. 字符串测试String
* 2. 测试File类
*/
import java.io.*;//File
public class TestString {
public static void main(String[] args){
String s="AdsdfdadfiwioAGDAG32432_jla";
int lCount=0,uCount=0,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(s+"含有"+lCount+"个小写字母");
System.out.println(s+"含有"+uCount+"个大写字母");
System.out.println(s+"含有"+oCount+"个非字母");
String s2="sunjavaphpcjavagoodjavaddd";
String sTemp=s2;
String sToFind="java";
int count=0;
int index=-1;
//找出包含指定字符串的个数
while((index=s2.indexOf(sToFind))!=-1){
s2=s2.substring(index+sToFind.length());
count++;
}
System.out.println(sTemp+"包含"+count+"个"+sToFind);
//file使用:创建文件
String separator=File.separator;//分隔符
String filename="myfile.txt";
String directory="mydir1"+separator+"mydir2";
File f=new File(directory,filename);
if(f.exists()){
System.out.println("文件名:"+f.getAbsolutePath());
System.out.println("文件大小:"+f.length());
}else{
//注意:当 class文件位于package里边时,父目录是package所在的目录
f.getParentFile().mkdirs();
try{
f.createNewFile();
}catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
//列出目录、文件
File f2=new File("D:/51VPN_2015/");
System.out.println(f2.getName());
listTree(f2,1);
}
//通过递归的方法列出目录or子目录下所有文件(以树的形式),用变量level标识所在层级
private static void listTree(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.print(preStr+childs[i].getAbsolutePath());
System.out.print(preStr);
System.out.println(childs[i].getName());
if(childs[i].isDirectory()){
listTree(childs[i],level+1);
}
}
}
}
结果:
AdsdfdadfiwioAGDAG32432_jla含有15个小写字母
AdsdfdadfiwioAGDAG32432_jla含有6个大写字母
AdsdfdadfiwioAGDAG32432_jla含有6个非字母
sunjavaphpcjavagoodjavaddd包含3个java
文件名:F:\Study\programme\Java\StudyProcess\MSB_String\mydir1\mydir2\myfile.txt
文件大小:0
51VPN_2015
51VPN.exe
config
config.ini
dnsflush.bat
dnsorder.vbs
route.dat
setting.ini
logs
2016-09-04.log
2016-09-05.log
2016-09-06.log
2016-09-07.log
2016-09-08.log
2016-09-09.log
2016-09-10.log
2016-09-11.log
2016-09-12.log
2016-09-14.log
2016-09-16.log
2016-09-17.log
2016-09-18.log
2016-09-19.log
2016-09-20.log
2016-09-21.log
2016-09-22.log
2016-09-23.log
2016-09-24.log
2016-09-25.log
2016-09-26.log
2016-09-29.log
2016-10-02.log
2016-10-03.log
2016-10-04.log
2016-10-05.log
2016-10-06.log
2016-10-08.log
2016-10-09.log
2016-10-10.log
2016-10-12.log
2016-10-13.log
2016-10-14.log
2016-10-15.log
2016-10-16.log
2016-10-17.log
2016-10-19.log
2016-10-21.log
2016-10-24.log
2016-10-25.log
2016-10-27.log
2016-10-28.log
2016-10-29.log
2016-10-30.log
2016-10-31.log
2016-11-01.log
2016-11-02.log
2016-11-09.log
2016-11-10.log
2016-11-11.log
2016-11-12.log
2016-11-13.log
2016-11-15.log
2016-11-16.log
2016-11-17.log
2016-11-21.log
openvpn
addtap.bat
ca.crt
connect.bat
deltapall.bat
driver_x64
OemWin2k.inf
tap0901.cat
tap0901.sys
tapinstall.exe
driver_x86
deltapall.bat
OemWin2k.inf
tap0901.cat
tap0901.sys
tapinstall.exe
installtap_x64.bat
installtap_x86.bat
libeay32.dll
libpkcs11-helper-1.dll
libssl32.dll
openssl.exe
openvpn.exe
ta.key
tapinstall.exe
template.ovpn
skinh.she
SkinHu.dll
官方信息.txt