public class TestString
{
public static void main(String[] args){
String s1 = "hello"; //s1是放在栈空间
String s2 = "world";
String s3 = "hello";
//由于s1和s3是字符串常量,是存放在data数据区的,编译器在编译data数据区时,对于相同值是不会存两遍的,相当于s1和s3指向的是同一块区域
System.out.println(s1==s3); //true
s1 = new String("hello");
s3 = new String("hello");
System.out.println(s1==s3); // false s1和s3是new出来的两个对象,相当于在堆空间各自开辟了两个空间,分别存放相同的“hello”,所以s1和s3指向两个不同的区域
System.out.println(s1.equals(s3)); //true String类重写了toString()方法,只要字符串序列相同就返回true
char c[] = {'s','u','n',' ','j','a','v','a'};
String a = new String(c);
String b = new String(c,4,4);
System.out.println(a);
System.out.println(b);
}
}
public class TestString2
{
public static void main(String[] args){
String s1 = "sun java";
String s2 = "Sun Java";
System.out.println(s1.charAt(1));
System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));
System.out.println(s1.length());
String str = "我是程序员,我在学习java";
String s = str.replace("我","你");
System.out.println(s);
}
}
public class TestString3
{
public static void main(String[] args){
String s = "Welcome to Java World!";
String s1 = " sun java ";
System.out.println(s.startsWith("Welcome"));//startWith()方法判断该字符串是否以给定字符开头
System.out.println(s1.endsWith("sun"));//endWith()方法判断该字符是否以某字符结尾
System.out.println(s.toLowerCase());//toLowerCase()方法将字符变为小写
System.out.println(s.toUpperCase());//toUpperCase()方法将字符变为大写
System.out.println(s1.trim());//trim()方法是将字符的首行和末尾的空格去掉
}
}
public class TestString4
{ public static void main(String[] args){
//该方法是获取指定字符串的大写字母数,小写字母数,非字母个数
/*String s = "AADDFgfdhgfjj4376547_hafsagEWS";
int iCount = 0,uCount = 0, oCount = 0;*/
/*//第一种写法
//循环拿出每个字符
for( int i = 0; i<s.length();i++){
char c = s.charAt(i);
if(c>='a'&&c<='z'){
iCount++;
}else if(c>='A'&&c<='Z'){
uCount++;
}else{
oCount++;
}
} */
//第二种写法
/*String s1 = "abcdefghijklmnopqrstuvwxyz";
String s2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for(int i =0; i<s.length();i++){
char c = s.charAt(i);
if(s1.indexOf(c)!=-1){//判断该字符是否在小写字母表中出现过,没有出现返回-1
iCount++;
}else if(s2.indexOf(c)!=-1){//判断该字符是否在大写字母表中出现过,没有出现返回-1
uCount++;
}else {
oCount++;
}
}*/
//第三种写法
/*for(int i = 0; i<s.length();i++){
char c = s.charAt(i);
if(Character.isLowerCase(c)){
iCount++;
}else if(Character.isUpperCase(c)){
uCount++;
}else{
oCount++;
}
}
System.out.println(iCount);
System.out.println(uCount);
System.out.println(oCount);
*/
//该方法是获取指定字符串中某字符出现的次数
String s = "sunjavahpjavaokjavajavahahajavashaguojava";
String sToFind = "java";
int count = 0;
int index = -1;
while((index=s.indexOf(sToFind))!=-1){
s = s.substring(index+sToFind.length());
count++;
}
System.out.println(count);
}
}
1:StringBuffer代表可变的字符序列
2:StringBuffer和String类似,但是StringBuffer可以对字符串进行改变
3:StringBuffer的常用的构造方法
StringBuffer():创建一个空的字符序列的BufferString对象,
StringBuffer(String str):创建一个StringBuffer对象,包含与String对象Str相同的字符序列
public class StringBufferTest1
{
public static void main(String[] args){
StringBuffer str = new StringBuffer("Microsoft");
char[] ch = {'a','b','c'};
str = str.append("/").append("IBM").append("/").append("sun");
System.out.println(str);
StringBuffer str1 = new StringBuffer("数字");
for(int i = 0; i<9;i++){
str1 = str1.append(i);
}
System.out.println("str1: "+str1);
str1 = str1.delete(8,str1.length()).insert(0,ch);
System.out.println(str1);
str1 = str1.reverse();
System.out.println(str1);
}
}
StringBuffer的常用方法
publicStringBufferinsert(int offset,Stringstr);
public StringBuffer insert(int offset,double d);该方法是在指定的位置进行添加字符串
publicStringBuffer delete(int start,int end);该方法可以删除从start开始到end-1为止的一段字符串序列,返回修改后的该StringBuffer对象的引用
publicStringBufferreverse()用于将字符序列逆序,返回修改字符的对象的引用
public StringBuffer append(String str);该方法都是将字符串添加到缓冲期的末尾,可以为该StringBuffer对象添加字符序列,返回添加后的该StringBuffer的对象引用
import java.io.*;
public class FileTest
{
public static void main(String[] args){
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{
f.getParentFile().mkdirs();
}
try{
f.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
}
//编写一个程序,在命令行以树状结构展现特定的文件夹及其子文件
import java.io.*;
public class FileList
{
public static void main(String[] args){
String separator = File.separator;
String fileName = "d:"+separator+"A";
File file = new File(fileName);
File[] fileList = file.listFiles();
for(File f: fileList){
System.out.println(f.getName());
}
}
}
public class Containde
{
public static void main(String[] args){
Integer intparam = new Integer(100);
Double d = new Double("124.567");
int i = intparam.intValue()+d.intValue();
float f = intparam.floatValue()+d.floatValue();
System.out.println(i);
System.out.println(f);
double d2 = Double.parseDouble("2.543657");
double d3 = Double.valueOf("2.0").doubleValue();
System.out.println(d2);
System.out.println(d3);
System.out.println(Integer.toBinaryString(123)+'B');
System.out.println(Integer.toHexString(123)+'H');
System.out.println(Integer.toOctalString(123)+'O');
}
}
基础数据类型的包装类(四类八种)
java.io.file中file是表示文件或者是路径名,判断是文件还是路径名的方法是isDirectory()方法和isFile()来判断;
java.io.file该类中有个方法是getParentFile()这个方法,该方法是拿出父类路径,,其中若使用该方法的类是位于某一个包中,getParentFile()这个方法是拿出包以上的路径作为该方法的父路径的,即位于包中的类的父路径是不包括该包的路径的
java.io.file类中有个静态常量是separator,之所以定义这个静态常量是因为在不同的平台中的文件路径的分隔符是不一样的。例如在windows操作系统中,路径分隔符是单条反斜杠。在Linux操作系统中,路径分隔符是单条正斜杠,所以定义这个常量是用于跨平台使用,直接使用这个变量来代替分隔符,则该程序到不同的平台上运行就会切换适应于本系统的分隔符。当然无论是在windows还是在Linux操作系统中,只要用正斜杠来表示路径的分隔符都不会错误
public class ArrayParse
{
public static void main(String[] args){
double[][] d;
String str = "1,2;3,4,5;6,7,8";
String[] array = str.split(";");
d = new double[array.length][];
for(int i =0;i<array.length;i++){
String second = array[i];
String[] second2 = second.split(",");
d[i]= new double[second2.length];
for(int j = 0; j <second2.length;j++){
d[i][j] = Double.parseDouble(second2[j]);
//System.out.println(d[i][j]);
}
}
for(int i =0;i<d.length;i++){
for(int j =0;j<d[i].length;j++){
System.out.println(d[i][j]+" ");
}
System.out.println();
}
}
}
java.lang.Enum:java中的枚举类型三大原则:
1: