黑马程序员——常用类

---------------------- android培训java培训、期待与您交流! ----------------------

String类

java.lang.String类代表不可变的字符序列。
(不可变的是指:生成的String对象在内存中值是不会改变的,它只会再创建一个名字相同的对象来存储改变的值。
例如:String s1="hello" String s2="java" s1+=s2 在这里s1指向两块内存区域。)

构造函数(API文档)

String() 空字符串。

String(byte[] bytes) 字节数组构成字符串,如(编码格式的转换)。

String(byte[] bytes,int offset,int length) 从字节数组的第几个位置开始,后面数多少个字节,构成字符串。

String(byte[] bytes,int offset,int length,String charsetName) charsetName 字符编码。

例:
String s1="hello"; String s2="hello";
System.out.println(s1==s2);  //true s1和s2指向同一块数据“hello”。

String s1=new String("hello"); String s2=new String("hello");//传入初始化的值
String s3=s1;
//对象的比较,“==”用于比较两个变量的值是否相等;equals方法比较两个对象的内容是否一样
System.out.println(s1==s2);           //false  s1和s2比较的是两个对象的首地址,而不是地址所指向的内容
System.out.println(s1==s3);       //true   s1和s3指向的是同一个地址
System.out.println(s1.equals(s2));    //true   直接比较的是s1和s2的内容

char c[]={'s','u','n',' ','j','a','v','a'};
String s1=new String(c,4,4);
System.out.println(s1);   //java 从第4个字符开始,截取4个字符。

String类 常用方法

例1:
String s1="sun java",s2="Sun Java";

System.out.println(s1.charAt(1));    //1:u   0:s
System.out.println(s2.length());    //8 计算字符长度
System.out.println(s1.indexOf("java"));   //4  从0开始
System.out.println(s1.indexOf("Java"));   //-1
System.out.println(s1.equals(s2));    //false
System.out.println(s1.equalsIgnoreCase(s2));   //true

String s=".net程序员";
String sr=s.replace('.net','java');

System.out.println(sr);               //java程序员

例2
String s="Welcome to Java World!";
String s1="  sun java  ";
String sL=s.toLowerCase();
String sU=s.toUpperCase();
String sp=s1.trim();      //去掉开头和结尾的空格

System.out.println(s.startsWith("Welcome"));    //true
System.out.println(s.endWith("World"));    //false
System.out.println(sL);      //welcome to java world!
System.out.println(sU);      //WELCOME TO JAVA WORLD!
System.out.println(sp);      //sun java

public String substring(int beginIndex) 返回该字符串从beginIndex开始到结尾的子字符串

public String substring(int beginIndex,int endIndex) 返回该字符串从beginIndex开始到endIndex结尾的子字符串

public static String valueOf(...)可以将所有类型数据转换为字符串(引用类型调用toString方法)。

public String[] split(String regex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。

例:
String s="Jack,M,1986";
String[] split=s.split(",");
for(int i=0;i<split.length;i++){
 System.out.println(split[i]);}    //Jack  M  1986

例:

输出大小写字母,数字和符号。
 
public class StringTest {

 public static void main(String[] args) {
  String defaults = "s lkd fjoFAVBjfsd35324fjlsdf@!#$@# ;lfDFA ojror09435803jfdjfjf$%#$^$!     #ADAFDGNFGNERT*";
  // char[] cDefaults=defaults.toCharArray();
  String upperCase = "";
  String lowerCase = "";
  String number = "";
  String other = "";
  for (int i = 0; i < defaults.length(); i++) {
   char c=defaults.charAt(i);
//   if (c >= 'a' && c <= 'z') {
//    upperCase += c;
//   } else if (c >= 'A' && c <= 'Z') {
//    lowerCase += c;
//   } else if (c >= '0' && c <= '9') {
//    number += c;
//   } else
//    other += c;
   
   //Character 类在对象中包装一个基本类型 char 的值
//   if(Character.isUpperCase(c)){} 
//   else if(Character.isLowerCase(c)){}
  }
  System.out.println(upperCase);
  System.out.println(lowerCase);
  System.out.println(number);
  System.out.println(other);
  
 }

}

例:

查找共多少個java

public class StringTest2 {

 public static void main(String[] args) {
  String str = "javajjavagoodjavaluckjavaokjavahaijavahellojavahaohaojavaabyebyejava";
  int count = 0;
  String javaVar = "";
  for (int i = 0; i < str.length(); i++) {
   char c = str.charAt(i);
   if (c == 'j') {
    javaVar = str.substring(i, i + 4);
    if (javaVar.equals("java")) {
     count++;
    }
   }
  }

  System.out.println(count);
 }

}

StringBuffer类

Buffer是缓冲区。

java.lang.StringBuffer类代表可变的字符序列。

(可变的是指,例如:StringBuffer s1="hello" StringBuffer s2="java" s1+=s2 在这里s1指向一块内存区域。)

StringBuffer类

常见方法:

public StringBuffer append()可以为该StringBuffer对象添加字符序列,返回添加后的该StringBuffer对象引用。

public StringBuffer append(String str)

public StringBuffer append(StringBuffer sbuf)

public StringBuffer append(char[] ch)

public StringBuffer append(char[] ch,int offset,int len)

public StringBuffer append(double d)

public StringBuffer append(object obj)

public StringBuffer insert()可以为该StringBuffer对象在指定位置插入字符序列,返回修改后的该StringBuffer对象引用。
public StringBuffer delete(int start,int end)可以删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用。

public StringBuffer reverse()用于将字符序列逆序,返回修改后的该StringBuffer对象引用。

例:

String s="Microsoft";
StringBuffer sbuf=new StringBuffer(s);//把字符串转化为StringBuffer
sbuf.append('/').append("IBM").append('/').append("SUN");
System.out.println(sbuf); //Microsoft/IBM/SUN

StringBuffer sbuf2=new StringBuffer("数字");
for(int i=0;i<=9;i++){sbuf2.append(i);}
System.out.println(sbuf2); //数字0123456789

char[] a={'a','b','c'};
sbuf2.delete(8,sbuf2.length()).insert(0,a);//先从第8位开始截,6789截掉了,然后在第0位插入a的数组。
System.out.println(sbuf2); //abc数字012345
System.out.println(sbuf2.reverse()); //逆序输出,543210字数cba

基本数据类型包装类

包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作,也就是把数据类型包装成对象,通过对象调用对应的方法。

java.lang.Integer类

构造方法

Integer(int value)

Integer(String s)

常见方法:

public static final int MAX_VALUE 最大的int类型值(2^31-1)

public static final int MAX_VALUE 最小的int类型值(-2^31)

public long longValue() 返回封装数据的long类型值

public double doubleValue() 返回封装数据的double类型值

public int intValue() 返回封装数据的int类型值

public static int parseInt(String s) 将字符串解析成int类型数据,返回该数据

public static Integer valueOf(String s) 返回Integer对象,其中封装的整型数据为字符串s所表示。
相当于 new Integer(Integer.parseInt(s))

例:
Integer i=new Integer(100);
Double d=new Double("123.456");//把字符串"123.456"转换成double类型的数,然后在包装到对象里去。
int j=i.intValue()+d.intValue();//100+把double类型强制转换成int类型123
double pi=Double.parseDouble("3.1415926");
double r=Double.valueOf("2.0").doubleValue();//先把字符串"2.0"转换成Double对象,然后再转换成double值
try{
 int k=Integer.parseInt("1.25");
}catch(NumberFormatException e){ //如果字符串不包含可解析的整数,抛异常。
 System.out.println("数据格式不对!");
}

例:

编写一个方法,返回一个double型二维数组,数组中的元素通过解析字符串参数获得。 如字符串:"1,2;3,4,5;6,7,8"。
大体思路:遇到一个程序,先要分成块来做,一块一块解决,就像常说的“蚂蚁啃大象”,先把会的写出来。
经常的打印输出,有助于调试。

public class TwoDimensionArrays {  
 
 public static void main(String[] args) {
  String str = "1,2;3,4,5;6,7,8";
  double[][] dou; // 定义一个二维数组
  String[] firstSplit = str.split(";"); // 首先用“;”分隔
  dou=new double[firstSplit.length][];//先定义第一维数组长度
  for (int i = 0; i < firstSplit.length; i++) {
   // System.out.println(firstSplit[i]);   
   String[] secondSplit = firstSplit[i].split(",");// 其次用“,”分隔
   dou[i]=new double[secondSplit.length];//再定义每个第一维数组里,第二维数组长度
   for (int j = 0; j < secondSplit.length; j++) {
    // System.out.println(secondSplit[j]);
    dou[i][j]=Double.parseDouble(secondSplit[j]);//把String类型转换为Double类型
    System.out.print(dou[i][j]+" ");
   }
   System.out.println();
  }
  
 }

}

Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。

abs()绝对值
sqrt()平方根
random()随机数0.0-1.0

例:
double a=Math.random();
double b=Math.random();
System.out.println(Math.sqrt(a*a+b*b));//a的平方加b的平方,开根号
System.out.println(Math.pow(a,8));//a的8次幂
System.out.println(Math.round(b));//b四舍五入
System.out.println(Math.log(Math.pow(Math.E,15)));//E为静态常量,E的15次幂的(log)对数15.0
double d=60.0,r=Math.PI/4;
System.out.println(Math.toRadians(d));//把角度转换成弧度
System.out.println(Math.toDegrees(r));//把弧度转换成角度45.0

 

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.youkuaiyun.com/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值