澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站java读取各样型的文件,jav

2019-05-03 作者:澳门新萄京官方网站   |   浏览(114)

在有些需求当中我们需要抓取字段并且填充到excel表格里面,最后将excel表格转换成pdf格式进行输出,我第一次接触这个需求时,碰到几个比较棘手的问题,现在一一列出并且提供解决方案。

java读取各类型的文件

用到的几个包

bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene-core-2.0.0.jar/PDFBox-0.7.3.jar/poi-3.0-alpha3-20061212.jar/poi-contrib-3.0-alpha3-20061212.jar/poi-scratchpad-3.0-alpha3-20061212.jar

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;

public class Test {

/**
* @param args
*/
public static void p(Object obj) {
   System.out.println(obj);
}

public static void main(String[] args) {
   try {
    p(readPpt("src/1.dps"));
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

}
//读取ppt
public static String readPpt(String path) throws Exception {

   StringBuffer content = new StringBuffer("");
   try {
    SlideShow ss = new SlideShow(new HSLFSlideShow(path));// path为文件的全路径名称,建立SlideShow
    Slide[] slides = ss.getSlides();// 获得每一张幻灯片
    for (int i = 0; i < slides.length; i ) {
     TextRun[] t = slides[i].getTextRuns();// 为了取得幻灯片的文字内容,建立TextRun
     for (int j = 0; j < t.length; j ) {
      content.append(t[j].getText());// 这里会将文字内容加到content中去
     }
     content.append(slides[i].getTitle());
    }
   } catch (Exception ex) {
    System.out.println(ex.toString());
   }
   return content.toString().trim();

}
// 读取xls
public static String readXls(String path) throws Exception {
   StringBuffer content = new StringBuffer("");// 文档内容
   HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(path));
   int sheetCount = workbook.getNumberOfSheets();// excel几张表
   for (int i = 0; i < sheetCount; i ) {// 遍历excel表
    HSSFSheet sheet = workbook.getSheetAt(i);// 对excel的第一个表引用
    int rowCount = sheet.getLastRowNum();// 取得最后一行的下标
    for (int j = 0; j < rowCount; j ) {// 循环每一行
     HSSFRow row = sheet.getRow(j);// 引用行
     if (row == null) {
      continue;
     } else {
      short cellNum = row.getLastCellNum();
      for (short m = 0; m < cellNum; m ) {
       HSSFCell cell = row.getCell(m);// 引用行中的一个单元格
       if (cell != null) {
        int cellType = cell.getCellType();
        // CELL_TYPE_NUMERIC 0 数字
        // CELL_TYPE_STRING 1 字符串
        // CELL_TYPE_FORMULA 2 公式
        // CELL_TYPE_BLANK 3 空格
        // CELL_TYPE_BOOLEAN 4 布尔值
        // CELL_TYPE_ERROR 5 错误
        switch (cellType) {
        // 单元格类型为数字
        case HSSFCell.CELL_TYPE_NUMERIC:
         // 取数字单元格的值
         double d = cell.getNumericCellValue();
         content.append(String.valueOf(d) "   ");
         break;
        // 单元格类型为字符串
        case HSSFCell.CELL_TYPE_STRING:
         String str = cell.getStringCellValue().trim();
         if (!str.equals("")) {
          content.append(str "   ");
         }
         break;
        // 单元格类型为公式
        case HSSFCell.CELL_TYPE_FORMULA:
         // 不读取公式
         // String formula = cell.getCellFormula();
         // content = content formula " ";
         break;
        // 单元格类型为空白
        case HSSFCell.CELL_TYPE_BLANK:
         break;
        // 单元格类型为布尔值
        case HSSFCell.CELL_TYPE_BOOLEAN:
         // boolean bool = cell.getBooleanCellValue();
         // content = content bool " ";
         break;
        // 单元格类型为错误
        case HSSFCell.CELL_TYPE_ERROR:
         // byte errorCode = cell.getErrorCellValue();
         // content = content errorCode " ";
         break;
        default:
         break;
        }
       } else {
        // content = content "..." " ";//没有数据的单元格使用...填充
       }
      }
     }
     content.append("r");
    }
   }
   return content.toString().trim();
}

// 读取pdf
public static String readPdf(String path) throws Exception {
   StringBuffer content = new StringBuffer("");// 文档内容
   FileInputStream fis = new FileInputStream(path);
   PDFParser p = new PDFParser(fis);
   p.parse();
   PDFTextStripper ts = new PDFTextStripper();
   content.append(ts.getText(p.getPDDocument()));
   fis.close();
   return content.toString().trim();
}

// 读取word,只能读取文本内容 图片不行
public static String readWord(String path) throws Exception {

   StringBuffer content = new StringBuffer("");// 文档内容
   HWPFDocument doc = new HWPFDocument(new FileInputStream(path));
   Range range = doc.getRange();
   int paragraphCount = range.numParagraphs();// 段落
   for (int i = 0; i < paragraphCount; i ) {// 遍历段落读取数据
    Paragraph pp = range.getParagraph(i);
    content.append(pp.text());
   }
   return content.toString().trim();
}

// 读取text
public static String readTxt(String path) {
   StringBuffer content = new StringBuffer("");// 文档内容
   try {
    FileReader reader = new FileReader(path);
    BufferedReader br = new BufferedReader(reader);
    String s1 = null;

    while ((s1 = br.readLine()) != null) {
     content.append(s1 "r");
    }
    br.close();
    reader.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
   return content.toString().trim();
}

}

java常用类的使用方法

Object
1.是类层次结构的根类,所有类都直接或间接的继承自object类。

java中字符串String 转 int

  String -> int
  
  s="12345";
  int i;
  第一种方法:i=Integer.parseInt(s);
  第二种方法:i=Integer.valueOf(s).intValue();
  这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
  
  int -> String
  
  int i=12345;
  String s="";
  第一种方法:s=i "";
  第二种方法:s=String.valueOf(i);
  这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
  
  
  以下是答案:
  
  
  第一种方法:s=i ""; //会产生两个String对象
  第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象
  
  第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
  第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
   
  
  --------------------------------------------------------------------
  1如何将字串 String 转换成整数 int?
  
  A. 有两个方法:
  
  1). int i = Integer.parseInt([String]); 或
  i = Integer.parseInt([String],[int radix]);
  
  2). int i = Integer.valueOf(my_str).intValue();
  
  注: 字串转成 Double, Float, Long 的方法大同小异.
  
  2 如何将整数 int 转换成字串 String ?
  
  A. 有叁种方法:
  
  1.) String s = String.valueOf(i);
  
  2.) String s = Integer.toString(i);
  
  3.) String s = "" i;
  
  注: Double, Float, Long 转成字串的方法大同小异.
  
  
  
  JAVA数据类型转换 
  
  这是一个例子,说的是JAVA中数据数型的转换.供大家学习
  
  package shenmixiaozhu;
  import java.sql.Date;
  public class TypeChange {
   public TypeChange() {
   }
   //change the string type to the int type
   public static int stringToInt(String intstr)
   {
   Integer integer;
   integer = Integer.valueOf(intstr);
   return integer.intValue();
   }
   //change int type to the string type
澳门新萄京官方网站java读取各样型的文件,java基础之常用类的法子。   public static String intToString(int value)
   {
   Integer integer = new Integer(value);
   return integer.toString();
   }
   //change the string type to the float type
   public static float stringToFloat(String floatstr)
   {
   Float floatee;
   floatee = Float.valueOf(floatstr);
   return floatee.floatValue();
   }
   //change the float type to the string type
   public static String floatToString(float value)
   {
   Float floatee = new Float(value);
   return floatee.toString();
   }
   //change the string type to the sqlDate type
   public static java.sql.Date stringToDate(String dateStr)
   {
   return java.sql.Date.valueOf(dateStr);
   }
   //change the sqlDate type to the string type
   public static String dateToString(java.sql.Date datee)
   {
   return datee.toString();
   }
  
   public static void main(String[] args)
   {
   java.sql.Date day ;
   day = TypeChange.stringToDate("2003-11-3");
   String strday = TypeChange.dateToString(day);
   System.out.println(strday);
   }
  
  }   

1:excel转pdf出现乱码:

Interger:整数类型

2.要掌握的方法
A:toString()  返回对象的字符串表示 
例 student [name = null, age = 0]
可以自动生成   快捷键:alt shift s s

    第一次excel转pdf是成功的,第二次开始后面皆是乱码,是因为我的pdf转excel方法出现的问题,解决办法是采用java自身底层的方法(详见下方代码)。

1、属性。

B:   equals()   比较两个对象是否相同,一般比较对象的成员变量的值是否相同。
例  (s1.equals(s2))  比较对象s1和对象s2的值
比较对象的成员变量的的时候可以自动生成 快捷键 alt shift s h

 public static boolean getLicense() {
        boolean result = false;
        try {
            InputStream is = Thread.currentThread().getContextClassLoader()
                    .getResourceAsStream("license.xml"); //  license.xml应放在..WebRootWEB-INFclasses路径下
            License aposeLic = new License();
            aposeLic.setLicense(is);
            result = true;
        } catch (Exception e) {               
            e.printStackTrace();
        }
        return result;
    }
    
    
    public static void excelTransferPdf(String excelPath,String pdfPath) {
        if (!getLicense()) {
            System.out.println("license faile");
            return;
        }
        
        try {     
            Workbook wb = new Workbook(excelPath);
            FileOutputStream fileOS = new FileOutputStream(new File(pdfPath));
            wb.save(fileOS, com.aspose.cells.SaveFormat.PDF);
            fileOS.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

static int MAX_VALUE:返回最大的整型数;
static int MIN_VALUE:返回最小的整型数;
static Class TYPE :返回当前类型。

Scanner
1.常用格式 Scanner sc = new Scanner(System.in);

2:excel转pdf出现折行。

例子:
代码:
System.out.println("Integer.MAX_VALUE: " Integer.MAX_VALUE );
结果为:Integer.MAX_VALUE: 2147483647  

2.要掌握的两个方法
A.public int nextInt()    
例:int x = sc.nextInt();
B.public string nextLine()  
例 String x = sc.nextLine();

  excel转pdf出现折行的情况非常常见,因为在程序运行过程中很多字段是抓取的,你无法判断你的excel转成pdf会有几页,所以这个时候你就不要随意设置excel的预览格式,将excel的单元格式设置自动换行。

2、构造函数。

String
1.多个字符组成的一串数据,它可以和字符数组进行相互转换

3:抓取字段显示结果不完整:。

Integer(int value) :通过一个int的类型构造对象;
Integer(String s) :通过一个String的类型构造对象;

2.构造方法:
public String ()  空构造
public String (byte[] bytes)  把字节数组转成字符串
public String (byte[] bytes,int offset,int length) 把字节数组的一部分转成字符串
public String (char[] value) 把字符数组转成字符串
public String (char[] value,int offset,int count) 把字符数组的一部分转成字符串
public String (String original) 把字符串常量值转成字符串

  当你未设置单元格大小而又没有设置单元格自动换行,比如你的A18单元格里面的字段超过了单元格的长度你还没有设置单元格大小而又没有设置单元格自动换行,就将抓取的字段填充在B18单元格里面,那么打印出来的pdf文件A18单元格超出单元格外的内容是不予显示的,此时你要么将抓取字段填充在C18单元格内要么将更改A18单元格格式

例子:
代码:
Integer i = new Integer("1234");
生成了一个值为1234的Integer对象。  

3.方法:
     判断功能
boolean equals(Object obj) 比较字符串的内容是否相同,区分大小写
例 s1.equals(s2) s1和s2比较
boolean equalsIgnoreCase(String str) 比较字符串内容是否相同,忽略大小写
例 s1.equals(s2) s1和s2比较,注意区分大小写
boolean contains(String str) 判断大字符串中是否包含小字符串
例 s1.contains("hello") 判断s1中有没有hello这个字符串
boolean startsWith(String str) 判断字符串是否以某个指定的字符串开头
例 s1.startWith("h")  判断s1中是否以h开头
boolean endsWith(String str) 判断字符串是否以某个指定的字符串结尾
例 s1.endWith("s")  判断s1中是否以s结尾
boolean isEmpty() 判断字符串是否为空
澳门新萄京官方网站java读取各样型的文件,java基础之常用类的法子。例 s1.isEmpty() 判断s1是否为空字符串

4:excel转PDF字段内容无故中间部分换行:

3、方法。
说明:

     获取功能
int length() 获取字符串的长度
       例 s.length()
char charAt(int index) 获取指定位置索引的字符
例 s.charAt(7) 获取第七个位置的字符(从0开始)
int indexOf(int ch) 返回指定字符在此字符串中第一次出现的索引
例 s.indexOf("c") 获取 c 第一次出现的位置
int indexOf(String str) 返回指定字符串在此字符串中第一次出现的索引
例 s.indexOf("cake") 获取 cake 第一次出现的位置
int indexOf(int ch,int fromIndex) 返回指定字符在此字符串中从指定位置后第一次出现处的索引
例 s.indexOf("c",4) 从第4个索引后获取 c 的索引
int indexOf(String str,int fromIndex) 返回指定字符串在此字符串中从指定位置后第一次出现处的索引
例 s.indexOf("cake",4) 从第4个索引后获取 cake 的索引
String substring(int start) 从指定位置截取字符串,默认到结尾
例 s.substring(5) 从第5个位置截取字符串
String substring(int start,int end) 从指定位置开始到结束截取字符串
例 s.substring(5,8) 从第5个位置截取字符串到第8个结束,不包括第8个字符。(包左不包右)

  这是我碰到的最坑的一个地方,这个时候你只需要在excel单元格里面设置自动换行即可,无需代码强行自动换行(强行换行有可能只出现多行数据只显示一行)。同时你需要如下代码:

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

     转换功能
byte[] getBytes() 把字符串转换为字节数组。
例 byte[] bys = s.getBytes();
char[] toCharArray() 把字符串转换为字符数组
例 char[] cha = s.toCharArray();
static String valueOf(char[] chs) 把字符数组转成字符串。
例 String ss = String.valueOf(cha);
static String valueOf(int i) 把int类型的数据转成字符串
例 int y=100;
  String s2= String.valueOf(y);
String toLowerCase() 把字符串转成小写
例 String s1=s.toLowerCase
String toUpperCase() 把字符串转成大写
例 String s1=s.toUpperCase
String concat(String str) 把字符串拼接
例 s1.concat(s2) 把s1和s2拼接

/**
     * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为1,英文字符长度为0.5
     *
     * @param String
     *            s 需要得到长度的字符串
     * @return int 得到的字符串长度
     */
    public static double getLength(String s) {
        double valueLength = 0;
        if (s == null) {
            return 0;
        }
        String chinese = "[u4e00-u9fa5]";
        // 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1
        for (int i = 0; i < s.length(); i ) {
            // 获取一个字符
            String temp = s.substring(i, i 1);
            // 判断是否为中文字符
            if (temp.matches(chinese)) {
                // 中文字符长度为2
                valueLength = 2;
            } else {
                // 其他字符长度为1
                valueLength = 1;
            }
        }
        // 进位取整
        return Math.ceil(valueLength);
    }

 

    其他功能
String replace(char old, char new) 替换字符串中的某一个字符
例 s1.replace("p","u")  把s1中的所有p字符替换成u字符
String replace(String old, String new) 替换字符串中的字符串
例 s1.replace("hello","feiji") 把s1中的hello替换成feiji
String trim() 去除字符串两端空格
例 s1.trim(); 
int compareTo(String str) 按字典顺序比较两 个字符串
例 s1.compareTo(s2);
  把s1和s2比较,一样返回0。
int compateToIgnoreCase(String str) 按字典顺序比较两个字符串,区分大小写
例 同上

    /**
     * 根据字符串长度获取行高
     *
     * @param str
     * @return
     */
    public static Float getRowHeight(String str) {

  1. byteValue():取得用byte类型表示的整数;
  2. int compareTo(Integer anotherInteger) :比较两个整数。相等时返回0;小于时返回负数;大于时返回正数。

StringBuffer(是同步的,数据安全,效率低)/StringBuilder(单线程使用,不同步,效率高。)
1.线程安全的可变字符串。

        Integer lineCount = (int) (getLength(str) / 64) 1;
        if (str.contains("n")) {
            Integer tempLineCount = 1;
            String[] lines = str.split("n");
            for (String line : lines) {
                Integer everyLineCount = (int) (getLength(line) / 64) 1;
                tempLineCount = everyLineCount;
            }
            lineCount = lineCount >= tempLineCount ? lineCount : tempLineCount;
        }
        Float rowHeight = (float) (lineCount * 20);
        return rowHeight;
    }

例子:
代码:

2.构造方法
public StringBuffer() 无参构造方法。
public StringBuffer(int capacity) 指定容量的字符串缓冲区对象。
public StringBuffer(String str) 指定字符串内容的字符串缓冲区对象。
3.方法
   A:添加功能
public StringBuffer append(String str)  添加任意类型到字符串杯子中
public StringBuffer insert(int offset,String str) 在指定位置插入任意类型的数据到杯子中

你需要先获取抓取的字符串的长度,然后通过这个方法计算行高,再将excel需要填充的该行用Java代码设置行高(行高单位是像素),但是如果出现我上面说的字段内容无故中间部分换行,那么你获取的行高就会不足,这个时候你需要改动这个地方----->>>>Float rowHeight = (float) (lineCount * X);  x的值一定要设置的大一行,以防出现这种情况!

Integer i = new Integer(1234);
System.out.println("i.compareTo: " i.compareTo(new Integer(123)) );
结果为:i.compareTo: 1  

     B: 删除功能 
public StringBuffer deleteCharAt(int index) 删除指定位置的一个字符
public StringBuffer delete(int start,int end) 删除指定区间的所有字符(包左不包右)

 

 

   C: 替换功能
public StringBuffer replace(int start,int end,String str) 替换指定区间的字符串(包左不包右)

  1. int compareTo(Object o) :将该整数与其他类进行比较。如果o也为Integer类,进行方法2 的操作;否则,抛出ClassCastException异常。
  2. static Integer decode(String nm) :将字符串转换为整数。
  3. double doubleValue() :取得该整数的双精度表示。
  4. boolean equals(Object obj) :比较两个对象。
  5. float floatValue() :取得该整数的浮点数表示。
  6. static Integer getInteger(String nm) :根据指定名确定系统特征值。
  7. static Integer getInteger(String nm, int val) :上面的重载。
  8. static Integer getInteger(String nm, Integer val) :上面的重载。
  9. int hashCode() :返回该整数类型的哈希表码。
  10. int intValue() : 返回该整型数所表示的整数。
  11. long longValue() :返回该整型数所表示的长整数。
  12. static int parseInt(String s) :将字符串转换成整数。s必须是时进制数组成,否则抛出NumberFormatException异常。
  13. static int parseInt(String s, int radix) :以radix为基数radix返回s的十进制数。所谓的基数,就是“几进制”。

     D: 反转功能
public StringBuffer reverse()  反转字符串,例 abc--cba

例子:
代码:

     E: 截取功能(注意返回值是String类型的)
public String substring(int start) 截掉字符串,(截掉输入参数之前的所有字符串)
public String substring(int start,int end) 截掉区间的字符串(包左不包右)
public int capacity() 返回当前容量。
public int length()  返回长度(字符数)。

String s1 = new String("1010");
System.out.println("Integer.parseInt(String s, int radix): " Integer.parseInt(s1,2) );
结果为:Integer.parseInt(String s, int radix): 10  

Arrays

 

  1.针对数组进行操作的的类(排序,查找...)
  2.方法
public static String toString(int[] a)  把数组转成字符串
public static void sort(int[] a)  对数组进行排序
public static int binarySearch(int[] a,int key)  二分查找(必须是排序后的数组才能查找)

  1. short shortValue() :返回该整型数所表示的短整数。
  2. static String toBinaryString(int i) :将整数转为二进制数的字符串。
  3. static String toHexString(int i) :将整数转为十六进制数的字符串。
  4. static String toOctalString(int i) :将整数转为八进制数的字符串。
  5. String toString() :将该整数类型转换为字符串。
  6. static String toString(int i) :将该整数类型转换为字符串。不同的是,此为类方法。
  7. static String toString(int i, int radix) :将整数i以基数radix的形式转换成字符串。

Integer

例子:
代码:
int i1 = 54321;
System.out.println("Integer.toString(int i, int radix): " Integer.toString(i1,16) );
结果为:Integer.toString(int i, int radix): d431

1.该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,
 还提供了处理 int 类型时非常有用的其他一些常量和方法

 

2.构造方法
public Integer(int value)  把int类型转换成Integer类型
public Integer(String s)   把string类型转换成Integer类型(里面必须是数字)

  1. static Integer valueOf(String s) :将字符串转换成整数类型。
  2. static Integer valueOf(String s, int radix) :将字符串以基数radix的要求转换成整数类型。  

3.方法
public int intValue()
public static int parseInt(String s)  把String类型转成int类型
public static String toString(int i)  把int类型转成String类型
public static Integer valueOf(int i)  把int类型转换成Integer类型
public static Integer valueOf(String s)  把string类型转换成Integer类型(里面必须是数字)

Float类的使用方法

 

Float:实数类型

Character

1、属性。

1.Character 类在对象中包装一个基本类型 char 的值
 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然

  1. static float MAX_VALUE : 返回最大浮点数,在不同硬件平台中由Float.intBitsToFloat(0x7f7fffff)计算得出。
  2. static float MIN_VALUE : 返回最小浮点数,在不同硬件平台中由Float.intBitsToFloat(0x1)计算得出。
  3. static float NaN : 表示非数值类型的浮点数,在不同硬件平台中由Float.intBitsToFloat(0x7fc00000)计算得出。
  4. static float NEGATIVE_INFINITY:返回负无穷浮点数,在不同硬件平台中由Float.intBitsToFloat(0xff800000)计算得出。
  5. static float POSITIVE_INFINITY :返回正无穷浮点数,在不同硬件平台中由Float.intBitsToFloat(0x7f800000)计算得出。
  6. static Class TYPE :返回当前类型。

2.成员方法
public static boolean isUpperCase(char ch) 判断给定的字符是否是大写字符
public static boolean isLowerCase(char ch)  判断给定的字符是否是小写字符
public static boolean isDigit(char ch)  判断给定的字符是否是数字字符
public static char toUpperCase(char ch)  把给定的字符转换为大写字符
public static char toLowerCase(char ch) 把给定的字符转换为小写字符

2、构造函数。

Pattern/ Matcher
获取功能

Float(double value) :以double类型为参数构造Float对象。
Float(float value) :以Float类型为参数构造Float对象。
Float(String s) :以String类型为参数构造Float对象。

Math
  1.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

3、方法。
说明:

2.成员方法

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

public static int abs(int a)  返回 int 值的绝对值。
public static double ceil(double a)  向上取整
public static double floor(double a) 向下取整
public static int max(int a,int b)   比较两个数的最大值
public static double pow(double a,double b)  a的b次幂
public static double random()  随机数
public static int round(float a) 四舍五入
public static double sqrt(double a)  正平方根

 

Random

  1. byte byteValue() :返回以字节表示的浮点数。
  2. static int compare(float f1, float f2) :此为类方法,比较f1和f2。相当于new Float(f1).compareTo(new Float(f2))。如果f1与f2相等,返回0;小于关系,返回负数;大于关系,返回正数。
  3. int compareTo(Float anotherFloat) :此为对象方法,当前对象与anotherFloat比较。与2的比较规则相同。
  4. int compareTo(Object o) :当前对象与o进行比较,如果o属于Float类,那么,相当于3;如果是其他类,则抛出ClassCastException异常。
  5. double doubleValue() :返回浮点数的双精度值。
  6. boolean equals(Object obj) :比较当前Float对象与obj的内容是否相同。大多数情况是比较两个Float对象的值是否相等,相当于f1.floatValue() == f2.floatValue()的值。与2、3、4不同的是:6返回boolean型。
  7. static int floatToIntBits(float value):按照IEEE 754转化成float并输出它的十进制数值。
  8. float floatValue() :返回该浮点数对象的浮点数值。
  9. int hashCode() :返回该Float对象的哈希表码。
  10. int intValue() :返回该Float对象的整数值(整数部分)。
  11. boolean isInfinite() :判断该Float对象是否是无穷。
  12. static boolean isInfinite(float v) :与11类似,不同的是:此为类方法,判断的是v。
  13. boolean isNaN() :判断该Float对象是否为非数值。
  14. static boolean isNaN(float v) :功能与13一样,只不过判断v。
  15. long longValue() :返回该Float对象的长整数值。
  16. static float parseFloat(String s) :将字符串转换成浮点数。
  17. short shortValue() :返回该Float对象的短整数值。
  18. String toString() :将该Float对象转换成字符串。
  19. static String toString(float f) :功能与18一样,只是转换f。
  20. static Float valueOf(String s) :将字符串转换成浮点数。

1.此类用于产生随机数

例子:
代码:
Float f = new Float(1237.45);
Float fs = new Float("123.45");
Float fd = new Float(1234146865679824657987947924623724749.16416925);

2.构造方法

System.out.println("f.compare(fs): " f.compareTo(fs) );
System.out.println("f.compareTo(fd): " f.compareTo(fd) );
System.out.println("Float.compare(1.23f,3.25f): " Float.compare(1.23f,3.25f) );
结果为:
f.compare(fs): 1
f.compareTo(fd): -1
Float.compare(1.23f,3.25f): -1

public Random()  没有给种子,用的是默认种子,是当前时间的毫秒值。
例 Random r = new Random();
public Random(long seed)  给出指定的种子,给出种子后每次得到的随机数是相同的
例 Random r = new Random(1201);

代码:
Float f = new Float(1237.45);
System.out.println("f.equals(fs): " f.equals(fs) );
结果为:f.equals(fs): false

3.成员方法

Double类的使用方法

public int nextInt() 返回的是int范围内的随机数
例 r.nextInt()  返回一个int范围内的随机数
public int nextInt(int n) 返回的是【0,n】范围内的随机数
例 r.nextInt(100) 返回0到100以内的随机数

Double:双精度类型

System

1、属性。

1.System 类包含一些有用的类字段和方法。它不能被实例化

 

2.成员方法

  1. static Double MAX_VALUE : 返回最大双精度数,在不同硬件平台中由Double.longBitsToDouble(0x7fefffffffffffffL)计算得出。
  2. static Double MIN_VALUE : 返回最小双精度数,在不同硬件平台中由Double.longBitsToDouble(0x1L)计算得出。
  3. static Double NaN : 表示非数值类型的双精度数,在不同硬件平台中由Double.longBitsToDouble(0x7ff8000000000000L)计算得出。
  4. static Double NEGATIVE_INFINITY:返回负无穷双精度数,在不同硬件平台中由Double.longBitsToDouble(0xfff0000000000000L)计算得出。
  5. static Double POSITIVE_INFINITY :返回正无穷双精度数,在不同硬件平台中由Double.longBitsToDouble(0x7ff0000000000000L)计算得出。
  6. static Class TYPE :返回当前类型。

public static void gc()  垃圾回收器
public static void exit(int status) 终止当前正在运行的虚拟机,参数给0就可以了。
public static long currentTimeMillis() 以毫秒为单位返回当前时间
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
数组复制
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。

2、构造函数。

BigInteger

Double(double value) :以double类型为参数创建Double对象。
Double(String s) :以String类型为参数创建String对象。

1.可以让超过Integer范围内的数据进行运算

3、方法。
说明:

2.构造方法

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

public BigInteger(String val)

 

3.成员方法
public BigInteger add(BigInteger val) 加法
例  s.add(s1) s和s1相加
public BigInteger subtract(BigInteger val) 减法
public BigInteger multiply(BigInteger val) 乘法
public BigInteger divide(BigInteger val) 除法
public BigInteger[] divideAndRemainder(BigInteger val) 返回商及余数的数组

  1. byte byteValue() :返回以字节表示的双精度数。
  2. static int compare(double d1, double d2) :此为类方法,比较d1和d2。相当于new Double(d1).compareTo(new Double(d2))。如果d1与d2相等,返回0;小于关系,返回负数;大于关系,返回正数。
  3. int compareTo(Double anotherDouble) :此为对象方法,当前对象与anotherDouble比较。与2的比较规则相同。
  4. int compareTo(Object o) :当前对象与o进行比较,如果o属于Double类,那么,相当于3;如果是其他类,则抛出ClassCastException异常。
  5. static long doubleToLongBits(double value) :把value按照IEEE 754转化成long并输出它的十进制数值。
  6. double doubleValue() :返回该双精度数对象的双精度数值。
  7. boolean equals(Object obj) :比较当前Double对象与obj的内容是否相同。大多数情况是比较两个Double对象的值是否相等,相当于d1.doubleValue() == d2.doubleValue()的值。
  8. float floatValue() :返回该浮点数对象的浮点数值。
  9. int hashCode() :返回该Double对象的哈希表码。
  10. int intValue() :返回该Double对象的整数值(整数部分)。
  11. boolean isInfinite() :判断该Double对象是否是无穷。
  12. static boolean isInfinite(double v) :与11类似,不同的是:此为类方法,判断的是v。
  13. boolean isNaN() :判断该Double对象是否为非数值。
  14. static boolean isNaN(double v) :功能与13一样,只不过判断v。
  15. long longValue() :返回该Double对象的长整数值。
  16. static float parseFloat(String s) :将字符串转换成双精度数。
  17. short shortValue() :返回该Double对象的短整数值。
  18. String toString() :将该Double对象转换成字符串。
  19. static String toString(Double f) :功能与18一样,只是转换f。
  20. static Double valueOf(String s) :将字符串转换成双精度数。

BigDecimal(做小数的运算)

例子:与Float类的相似。

1.不可变的、任意精度的有符号十进制数
由于在运算的时候,float类型和double很容易丢失精度,演示案例。
所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

 

2.构造方法

Character类的使用方法

public BigDecimal(String val)
3.方法

Character:字符类型

public BigDecimal add(BigDecimal augend)  加法
public BigDecimal subtract(BigDecimal subtrahend)  减法
public BigDecimal multiply(BigDecimal multiplicand)  乘法
public BigDecimal divide(BigDecimal divisor)  除法
public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)

1、属性。

Date

static int MIN_RADIX :返回最小基数。
static int MAX_RADIX :返回最大基数。
static char MAX_VALUE :字符类型的最大值。
static char MIN_VALUE :字符类型的最小值。
static Class TYPE :返回当前类型。

1.Date 表示特定的瞬间,精确到毫秒

2、构造函数。

2.构造方法

Character(char value):以char参数构造一个Character对象。

public Date() 根据当前的毫秒值创建日期对象
public Date(long date) 根据给定的毫秒值创建日期对象

3、方法。
说明:

3.成员方法
public long getTime()  获取当前时间
public void setTime(long time)  设置时间

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

DateFormat

  1. char charValue() :返回字符对象的值。
  2. int compareTo(Character anotherCharacter) :当前Character对象与anotherCharacter比较。相等关系返回0;小于关系返回负数;大于关系返回正数。
  3. int compareTo(Object o) :当前对象与另一个对象进行比较。如果o是Character对象,则与2功能一样;否则,抛出ClassCastException异常。
  4. static int digit(char ch, int radix) :根据基数返回当前字符的值的十进制。如果不满足Character.MIN_RADIX <= radix <= Character.MAX_RADIX,或者,ch不是radix基数中的有效值,返回"-1";如果ch是“大写”的A到Z之间,则返回ch

1.DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
  是抽象类,所以使用其子类SimpleDateFormat

  • 'A' 10 的值;如果是“小写”a到z之间,返回ch - 'a' 10 的值。

2.SimpleDateFormat(可以把日期转换成String类型)

代码:
System.out.println("Character.MIN_RADIX: " Character.MIN_RADIX );
System.out.println("Character.MAX_RADIX: " Character.MAX_RADIX );
System.out.println("Character.digit('2',2): " Character.digit('2',2) );
System.out.println("Character.digit('7',10): " Character.digit('7',10) );
System.out.println("Character.digit('F',16): " Character.digit('F',16) );
结果为:
Character.MIN_RADIX: 2
Character.MAX_RADIX: 36
Character.digit('2',2): -1
Character.digit('7',10): 7
Character.digit('F',16): 15

3.构造方法
public SimpleDateFormat() 默认模式
public SimpleDateFormat(String pattern)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss")
4.成员方法
public final String format(Date date) 把日期格式转换成String类型
public Date parse(String source)  把给定的字符串解析成日期格式

  1. boolean equals(Object obj) :与obj对象比较。当且仅当obj不为“null”并且和当前Character对象一致时返回“true”。
  2. static char forDigit(int digit, int radix) :根据特定基数判断当前数值表示的字符。4的逆运算,非法数值时返回“'/u0000'”。

Calendar

代码:
System.out.println("Character.MIN_RADIX: " Character.MIN_RADIX );
System.out.println("Character.MAX_RADIX: " Character.MAX_RADIX );
System.out.println("Character.forDigit(2,2): " Character.forDigit(2,2) );
System.out.println("Character.forDigit(7,10): " Character.forDigit(7,10) );
System.out.println("Character.forDigit(15,16): " Character.forDigit(15,16) );
结果为:
Character.MIN_RADIX: 2
Character.MAX_RADIX: 36
Character.forDigit(2,2):
Character.forDigit(7,10): 7
Character.forDigit(15,16): f  

1.Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转  换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

 

2.成员方法
public static Calendar getInstance()  获取当前时间
Calendar c = Calendar.getInstance;

  1. static int getNumericValue(char ch) :返回字符ch的数值。
  2. static int getType(char ch) :返回字符所属类型。具体有哪些种类请查看Java文档资料。
  3. int hashCode() :返回当前字符的哈希表码。
  4. static boolean isDefined(char ch) :判断字符ch在Unicode字符集是否用明确定义。
  5. static boolean isDigit(char ch) :判断字符ch是否为数字。
  6. static boolean isIdentifierIgnorable(char ch) :判断字符ch是否为Unicode字符集中可忽略的字符。
  7. static boolean isISOControl(char ch) :判断字符ch是否为ISO标准中的控制字符。
    14.static boolean isJavaIdentifierPart(char ch) :判断字符ch是否为Java中的部分标识符。
  8. static boolean isJavaIdentifierStart(char ch) :判断字符ch是否为Java中的第一个标识符。
  9. static boolean isLetter(char ch) :判断字符ch是否为字母。
  10. static boolean isLetterOrDigit(char ch) :判断字符ch是否为字母或数字。
  11. static boolean isLowerCase(char ch) :判断字符ch是否为小写字母。
  12. static boolean isMirrored(char c) :根据Unicode表判断字符c是否存在与之方向相反的字符。例如:“〔”存在与之方向相反的“〕”,结果为:true。
  13. static boolean isSpaceChar(char ch) :判断字符ch是否为Unicode中的空格。
  14. static boolean isUpperCase(char ch) :判断字符ch是否为大写字母。
  15. static boolean isWhitespace(char ch) :判断字符ch是否为Java定义中的空字符。
    代码:
    其中包括:
      char c1 = '/u0009';//水平列表符
      char c2 = '/u000A';//换行
      char c3 = '/u000B';//垂直列表符
      char c4 = '/u000C';//换页
      char c5 = '/u000D';//回车
      char c6 = '/u001C';//文件分隔符
      char c7 = '/u001D';//组分隔符
      char c8 = '/u001E';//记录分隔符
      char c9 = '/u001F';//单元分隔符

  16. static char toLowerCase(char ch) :转换ch是否为小写。

  17. String toString() :将当前Character对象转换成字符串。
  18. static String toString(char c) :此为类方法,将c转换成字符串。
  19. static char toUpperCase(char ch) :转换ch是否为大写。

public int get(int field) 返回给定日历字段的值。
public void add(int field,int amount)  根据给定的日历字段和对应的时间,来对当前的日历进行操作
public final void set(int year,int month,int date) 设定当前的日历时间

代码:
System.out.println("Character.toUpperCase('q'): " Character.toUpperCase('q') );
System.out.println("Character.toLowerCaseCase('B'): " Character.toLowerCase('B') );
结果为:
Character.toUpperCase('q'): Q
Character.toLowerCaseCase('B'): b

 

string类的使用方法

String:字符串类型
此帖参考了maxlyy朋友的帖子,在这里特别感谢。
1、构造函数。

String() :构造一个空字符串对象。
String(byte[] bytes) :通过byte数组构造字符串对象。
String(byte[] bytes, int offset, int length) :通过byte数组,从offset开始,总共length长的字节构造字符串对象。
String(char[] value) :通过char数组构造字符串对象。
String(char[] value, int offset, int count) :通过char数组,从offset开始,总共length长的字节构造字符串对象。
String(String original) :构造一个original的副本。既,拷贝一个original。
String(StringBuffer buffer) :通过StringBuffer数组构造字符串对象;

代码:
  byte[] b = {'a','b','c','d','e','f','g','h','i','j'};
  char[] c = {'0','1','2','3','4','5','6','7','8','9'};

  String sb = new String(b);
  String sb_sub = new String(b,3,2);
  String sc = new String(c);
  String sc_sub = new String(c,3,2);
  String sb_copy = new String(sb);
 
  System.out.println("sb: " sb );
  System.out.println("sb_sub: " sb_sub );
  System.out.println("sc: " sc );
  System.out.println("sc_sub: " sc_sub );
  System.out.println("sb_copy: " sb_copy );
结果为:
sb: abcdefghij
sb_sub: de
sc: 0123456789
sc_sub: 34
sb_copy: abcdefghij

2、方法。
说明:

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

 

  1. char charAt(int index) :取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。

代码:
  String s = new String("abcdefghijklmnopqrstuvwxyz");
  System.out.println("s.charAt(5): " s.charAt(5) );
结果为:s.charAt(5): f

  1. int compareTo(String anotherString) :当前String对象与anotherString比较。相等关系返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。
  2. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。

代码:
  String s1 = new String("abcdefghijklmn");
  String s2 = new String("abcdefghij");
  String s3 = new String("abcdefghijalmn");

  System.out.println("s1.compareTo(s2): " s1.compareTo(s2) );//返回长度差
  System.out.println("s1.compareTo(s3): " s1.compareTo(s3) );//返回'k'-'a'的差
结果为:
s1.compareTo(s2): 4
s1.compareTo(s3): 10

 

  1. String concat(String str) :将该String对象与str连接在一起。
  2. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。
  3. static String copyValueOf(char[] data) :
  4. static String copyValueOf(char[] data, int offset, int count) :这两个方法将char数组转换成String,与其中一个构造函数类似。
  5. boolean endsWith(String suffix) :该String对象是否以suffix结尾。

代码:
  String s1 = new String("abcdefghij");
  String s2 = new String("ghij");
  System.out.println("s1.endsWith(s2): " s1.endsWith(s2) );
结果为:s1.endsWith(s2): true

 

  1. boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false。
  2. byte[] getBytes() :将该String对象转换成byte数组。
  3. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。

代码:
  char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!
  String s2 = new String("you!");
  s2.getChars(0,3,s1,7);  //s1=I love you!
  System.out.println( s1 );
结果为:I love you!

  1. int hashCode() :返回当前字符的哈希表码。
  2. int indexOf(int ch) :只找第一个匹配字符位置。
  3. int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置。
  4. int indexOf(String str) :只找第一个匹配字符串位置。
  5. int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置。

代码:
  String s = new String("write once, run anywhere!");
  String ss = new String("run");
  System.out.println("s.indexOf('r'): " s.indexOf('r') );
  System.out.println("s.indexOf('r',2): " s.indexOf('r',2) );
  System.out.println("s.indexOf(ss): " s.indexOf(ss) );
结果为:
s.indexOf('r'): 1
s.indexOf('r',2): 12
s.indexOf(ss): 12

  1. int lastIndexOf(int ch)
  2. int lastIndexOf(int ch, int fromIndex)
  3. int lastIndexOf(String str)
  4. int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容。
  5. int length() :返回当前字符串长度。
  6. String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar。
  7. boolean startsWith(String prefix) :该String对象是否以prefix开始。
  8. boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。

代码:
  String s = new String("write once, run anywhere!");
  String ss = new String("write");
  String sss = new String("once");
  System.out.println("s.startsWith(ss): " s.startsWith(ss) );
  System.out.println("s.startsWith(sss,6): " s.startsWith(sss,6) );
结果为:
s.startsWith(ss): true
s.startsWith(sss,6): true

  1. String substring(int beginIndex) :取从beginIndex位置开始到结束的子字符串。
    26.String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串。
  2. char[] toCharArray() :将该String对象转换成char数组。
  3. String toLowerCase() :将字符串转换成小写。
  4. String toUpperCase() :将字符串转换成大写。

代码:
  String s = new String("java.lang.Class String");
  System.out.println("s.toUpperCase(): " s.toUpperCase() );
  System.out.println("s.toLowerCase(): " s.toLowerCase() );
结果为:
s.toUpperCase(): JAVA.LANG.CLASS STRING
s.toLowerCase(): java.lang.class string

  1. static String valueOf(boolean b)
  2. static String valueOf(char c)
  3. static String valueOf(char[] data)
  4. static String valueOf(char[] data, int offset, int count)
  5. static String valueOf(double d)
  6. static String valueOf(float f)
  7. static String valueOf(int i)
  8. static String valueOf(long l)
  9. static String valueOf(Object obj)
    以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。

 

StringTokenizer类的使用方法

StringTokenizer:字符串分隔解析类型
属于:java.util包。

1、构造函数。

  1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘/t’)”、“换行符(‘/n’)”、“回车符(‘/r’)”。
  2. StringTokenizer(String str, String delim) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
  3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。

2、方法。
说明:

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
  1. int countTokens() :返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量(例2)。
  2. boolean hasMoreTokens() :返回是否还有分隔符。
  3. boolean hasMoreElements() :结果同2。
  4. String nextToken() :返回从当前位置到下一个分隔符的字符串。
  5. Object nextElement() :结果同4。
  6. String nextToken(String delim) :与4类似,以, 指定的分隔符返回结果。

例子:
代码:
    String s = new String("The Java platform is the ideal platform for network computing");
    StringTokenizer st = new StringTokenizer(s);
    System.out.println( "Token Total: " st.countTokens() );
    while( st.hasMoreElements() ){
      System.out.println( st.nextToken() );
           }
结果为:
Token Total: 10
The
Java
platform
is
the
ideal
platform
for
network
computing  

例2:
代码:
    String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
    StringTokenizer st = new StringTokenizer(s,"=",true);
    System.out.println( "Token Total: " st.countTokens() );
    while( st.hasMoreElements() ){
      System.out.println( st.nextToken() );
    }
结果为:
Token Total: 19

The

Java

platform

is

the

ideal

platform

for

network

computing  

StringBuffer类的使用方法

StringBuffer:StringBuffer类型

描述:在实际应用中,经常回遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。

1、构造函数。

StringBuffer() :构造一个没有任何字符的StringBuffer类。
StringBuffer(int length) : :构造一个没有任何字符的StringBuffer类,并且,其长度为length。
StringBuffer(String str) :以str为初始值构造一个StringBuffer类。

2、方法。
说明:

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
  1. StringBuffer append(boolean b)
  2. StringBuffer append(char c)
  3. StringBuffer append(char[] str)
  4. StringBuffer append(char[] str, int offset, int len)
  5. StringBuffer append(double d)
  6. StringBuffer append(float f)
  7. StringBuffer append(int i)
  8. StringBuffer append(long l)
  9. StringBuffer append(Object obj)
  10. StringBuffer append(String str)
  11. StringBuffer append(StringBuffer sb)
    以上的方法都是向字符串缓冲区“追加”元素,但是,这个“元素”参数可以是布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串、字符串和StringBuffer类等。如果添加的字符超出了字符串缓冲区的长度,Java将自动进行扩充。

代码:
    String question = new String("1 1=");
    int answer = 3;
    boolean result = (1 1==3);
   
    StringBuffer sb = new StringBuffer();
    sb.append(question);
    sb.append(answer);
    sb.append('/t');
    sb.append(result);
   
    System.out.println(sb);
结果为:
1 1=3  false

  1. int capacity() :返回当前StringBuffer对象(字符串缓冲区)的总空间,而非字符号串的长度。
  2. char charAt(int index) :在当前StringBuffer对象中取索引号为index的字符。第一个字符的索引为“0”
  3. StringBuffer delete(int start, int end) :删除当前StringBuffer对象中以索引号start开始,到end结束的子串。
  4. StringBuffer deleteCharAt(int index) :删除当前StringBuffer对象中索引号为index的字符。
  5. void ensureCapacity(int minimumCapacity) :重新设置字符号串缓冲区的总空间。如果minimumCapacity大于当前的总空间,则新的空间被设置:一种结果是minimumCapacity;另一种结果是{“老空间”乘2加2}。

代码:
    StringBuffer sb1 = new StringBuffer(5);
    StringBuffer sb2 = new StringBuffer(5);
   
    sb1.ensureCapacity(6);
    sb2.ensureCapacity(100);
   
    System.out.println( "sb1.Capacity: " sb1.capacity() );
    System.out.println( "sb2.Capacity: " sb2.capacity() );
结果为:
sb1.Capacity: 12
sb2.Capacity: 100

  1. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :从当前StringBuffer对象的索引号srcBegin开始,到srcEnd结束的子串,赋值到字符数组dst中,并且从dst的索引号dstBegin开始。

代码:
    StringBuffer sb = new StringBuffer("I love her!");
    char[] i = {'I',' ','l','o','v','e',' ','y','o','u'};
   
    sb.getChars(7,10,i,7);
   
    System.out.println( "sb: " sb );
结果为:sb: I love her!

  1. int indexOf(String str) :返回当前StringBuffer对象中,第一个满足str子串的位置。
  2. int indexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回第一个满足str子串的位置。
  3. StringBuffer insert(int offset, boolean b)
  4. StringBuffer insert(int offset, char c)
  5. StringBuffer insert(int offset, char[] str)
  6. StringBuffer insert(int index, char[] str, int offset, int len)
  7. StringBuffer insert(int offset, double d)
  8. StringBuffer insert(int offset, float f)
  9. StringBuffer insert(int offset, int i)
  10. StringBuffer insert(int offset, long l)
  11. StringBuffer insert(int offset, Object obj)
  12. StringBuffer insert(int offset, String str)
    以上的方法都是在当前StringBuffer对象中插入一个元素,在索引号offset处插入相应的值。
  13. int lastIndexOf(String str) :返回当前StringBuffer对象中,最后一个满足str子串的位置。
  14. int lastIndexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回最后一个满足str子串的位置。
  15. int length() :返回当前StringBuffer对象(字符缓冲区)中,字符串的长度。注意:此方法与capacity() 不同。
  16. StringBuffer replace(int start, int end, String str) :替换当前StringBuffer对象的字符串。从start开始,到end结束的位置替换成str。
  17. StringBuffer reverse() :将字符串翻转。

代码:
    StringBuffer sb = new StringBuffer("0123456789");
    System.out.println( "sb.reverse(): " sb.reverse() );
结果为:sb.reverse(): 9876543210

  1. void setCharAt(int index, char ch) :设置索引号index的字符为ch。
  2. void setLength(int newLength) :重新设置字符串缓冲区中字符串的长度,如果newLength小于当前的字符串长度,将截去多余的字符。

代码:
    StringBuffer sb = new StringBuffer("0123456789");
    sb.setLength(5);
    System.out.println( "sb: " sb );
结果为:sb: 01234

  1. String substring(int start) :取当前StringBuffer对象中,从start开始到结尾的子串。
  2. String substring(int start, int end) :取当前StringBuffer对象中,从start开始到end的子串。
  3. String toString() :将当前StringBuffer对象转换成String对象。

 

Random类的使用方法。

属于包:java.util.Random

Random:随机类型

1、属性。

无。

2、构造函数。

Random() :创建一个新的随机数发生器。

Random(long seed) :用一个种子(长整型)创建一个随机数发生器。

3、方法。
说明:

  1. 所有方法均为public;
  2. 书写格式:〔修饰符〕 <返回类型> <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

 

  1. protected int next(int bits) :产生下一个伪随机数。

  2. boolean nextBoolean() :返回下一个从随机发生器的系列中得到的均匀分布的布尔值。

  3. void nextBytes(byte[] bytes) :产生随机字节数组放到指定的数组中。

  4. double nextDouble() :返回下一个从随机发生器的系列中得到的均匀分布的0.0到1.0的双精度类型值。

  5. float nextFloat() :返回下一个从随机发生器的系列中得到的均匀分布的0.0到1.0的浮点类型值。

  6. double nextGaussian() :返回下一个从随机发生器的系列中得到的符合均匀分布的0.0的平均数到1.0方差的高斯分布双精度类型值。

  7. int nextInt() :返回下一个从随机发生器的系列中得到的均匀分布的整型值。

  8. int nextInt(int n) :返回下一个从随机发生器的系列中得到的均匀分布的0到指定整型数(n)之间的整型值。

  9. long nextLong() :返回下一个从随机发生器的系列中得到的均匀分布的长整型值。

  10. void setSeed(long seed) :设置随机数发生器的种子为一个长整型数。

关于种子的描述:
这个类的对象使用一个48位的种子,
如果这个类的两个实例是用同一个种子创建的,
并且,各自对它们以同样的顺序调用方法,
则它们会产生相同的数字序列。

下面就对上面的介绍做一个实验,
尤其注意相同种子时的结果,
如果用默认的构造函数构造对象,
他们是属于同一个种子的。

代码:
import java.util.Random;

public class TestRandom{
  public static void main(String[] args){
    Random r1 = new Random(50);
    System.out.println("第一个种子为50的Random对象");
    System.out.println("r1.nextBoolean():/t" r1.nextBoolean());
    System.out.println("r1.nextInt():/t/t" r1.nextInt());
    System.out.println("r1.nextDouble():/t" r1.nextDouble());
    System.out.println("r1.nextGaussian():/t" r1.nextGaussian());
    System.out.println("---------------------------");
   
    Random r2 = new Random(50);
    System.out.println("第二个种子为50的Random对象");
    System.out.println("r2.nextBoolean():/t" r2.nextBoolean());
    System.out.println("r2.nextInt():/t/t" r2.nextInt());
    System.out.println("r2.nextDouble():/t" r2.nextDouble());
    System.out.println("r2.nextGaussian():/t" r2.nextGaussian());
    System.out.println("---------------------------");
   
    Random r3 = new Random(100);
    System.out.println("种子为100的Random对象");
    System.out.println("r3.nextBoolean():/t" r3.nextBoolean());
    System.out.println("r3.nextInt():/t/t" r3.nextInt());
    System.out.println("r3.nextDouble():/t" r3.nextDouble());
    System.out.println("r3.nextGaussian():/t" r3.nextGaussian());
   
    System.out.println("结果一目了然!");
  }
}

结果:
代码:

第一个种子为50的Random对象
r1.nextBoolean():    true
r1.nextInt():       -1727040520
r1.nextDouble():    0.6141579720626675

r1.nextGaussian():   2.377650302287946

第二个种子为50的Random对象
r2.nextBoolean():    true
r2.nextInt():       -1727040520
r2.nextDouble():    0.6141579720626675

r2.nextGaussian():   2.377650302287946

种子为100的Random对象
r3.nextBoolean():    true
r3.nextInt():       -1139614796
r3.nextDouble():    0.19497605734770518
r3.nextGaussian():   0.6762208162903859
结果一目了然!

本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:澳门新萄京官方网站java读取各样型的文件,jav

关键词: