菜单

金沙国际唯一官网java常用类的使用方法

2019年11月4日 - 金沙国际棋牌下载官网

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

java常用类的使用方法

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

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() 判断字符串是否为空
例 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

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图