mg娱乐电子4355_mg娱乐电子游戏平台
做最好的网站

java常用类的使用方法

时间:2019-11-04 23:36来源:计算机操作
在有些需求当中我们需要抓取字段并且填充到excel表格里面,最后将excel表格转换成pdf格式进行输出,我第一次接触这个需求时,碰到几个比较棘手的问题,现在一一列出并且提供解决方

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

java常用类的使用方法

1:excel转pdf出现乱码:

Interger:整数类型

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

1、属性。

 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 :返回当前类型。

2:excel转pdf出现折行。

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

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

2、构造函数。

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

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

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

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

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

3、方法。
说明:

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

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

/**
     * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为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);
    }

 

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

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

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

例子:
代码:

你需要先获取抓取的字符串的长度,然后通过这个方法计算行高,再将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  

 

 

  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的十进制数。所谓的基数,就是“几进制”。

例子:
代码:

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  

 

  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的形式转换成字符串。

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

 

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

Float类的使用方法

Float:实数类型

1、属性。

  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、构造函数。

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

3、方法。
说明:

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

 

  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) :将字符串转换成浮点数。

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

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

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

Double类的使用方法

Double:双精度类型

1、属性。

 

  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 :返回当前类型。

2、构造函数。

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

3、方法。
说明:

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

 

  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) :将字符串转换成双精度数。

例子:与Float类的相似。

 

Character类的使用方法

Character:字符类型

1、属性。

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

2、构造函数。

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

3、方法。
说明:

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

编辑:计算机操作 本文来源:java常用类的使用方法

关键词: