Java基础知识之基本数据类型

来源:互联网 发布:南北网桥网络加速器 编辑:程序博客网 时间:2024/04/25 20:19

1.字符串 String 转数字

int i = Integer.parseInt("123456"); //转整形double d = Double.parseDouble("123.456"); //转doublefloat f = Float.parseFloat("12345.6"); //转float

2.数字转字符串

String str = String.valueOf(123456); //valueOf(int/float/char/double/boolean/long/Object)//或者String str2 = "" + 123456; 

3.字符串转十六进制字符串(实用适用于英文,经测试两种方法英文得到的结果一样,但中文转换的结果不同,编码问题)

第一种也可实现 字节数据转换为十六进制字符串

public static String stringToHexString(String str) {// 16进制数字字符集String hexString = "0123456789ABCDEF";// 根据默认编码获取字节数组byte[] bytes = str.getBytes();StringBuilder sBuilder = new StringBuilder(bytes.length * 2);// 将字节数组中每个字节拆解成2位16进制整数for (int i = 0; i < bytes.length; i++) {sBuilder.append(hexString.charAt((bytes[i] & 0xf0) >> 4));sBuilder.append(hexString.charAt((bytes[i] & 0x0f) >> 0));}return sBuilder.toString();}

或者

public static String stringToHexString(String str) {StringBuffer sBuffer = new StringBuffer();for (int i = 0; i < str.length(); i++) {// 返回指定位置的char值int ch = (int) str.charAt(i);// 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。String string = Integer.toHexString(ch);sBuffer.append(string);}return sBuffer.toString();}

4.十六进制字符串转换为字符串(转中文也不会乱码)

public static String hexStringToString(String str) {// 16进制数字字符集String hexString = "0123456789ABCDEF";// 如果为空if (str == null || str.equals("")) {return null;}// 如果进制带0x标志 则去掉if ("0x".equals(str.substring(0, 2))) {// 去掉前两位str = str.substring(2);}// 去掉字符中所有的空格 注:String.trim() 只是去掉头尾的空格str = str.replace(" ", "");ByteArrayOutputStream baos = new ByteArrayOutputStream(str.length() / 2);// 每2位16进制数组成一个字节for (int i = 0; i < str.length(); i += 2) {baos.write(hexString.indexOf(str.charAt(i)) << 4 | hexString.indexOf(str.charAt(i + 1)));}try {str = new String(baos.toByteArray(), "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return str;}
5.将数字输出为每三位逗号分隔的格式,例如“1,234,567”
public static String formatToSeparate(int number) {DecimalFormat dec = new DecimalFormat("#,###");return dec.format(number);}

6.将字符串转化为Boolean对象

Boolean.parseBoolean("true"); //返回boolean值

7.去掉字符串中的特殊字符

    public static String removeOtherCode(String s) {        if (TextUtils.isEmpty(s))            return "";        s = s.replaceAll("\\<.*?>|\\n", "");        return s;    }

8.四字节byte数组转化为int数字,以及反转

// 4字节byte数组转化为int整数public static int byte4ToInt(byte[] bytes) {int b0 = bytes[0] & 0xff;int b1 = bytes[1] & 0xff;int b2 = bytes[2] & 0xff;int b3 = bytes[3] & 0xff;return (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;}
反转

//整数转换为4字节byte数组public static byte[] intToByte4(int number) {byte[] bytes = new byte[4];for(int i = 0; i < 4; i++) {bytes[i] =(byte)(number >> (24 - i*8));}return bytes;}

9.浮点数打印输出指定小数位数

//注意float后加 f 如 12.345f 与double区分public static String floatFormat(float f,int num) {//f为浮点数,num为要显示的小数点位数String format = "#.";for(int i = 0; i < num; i ++) {format += "#";}DecimalFormat dec = new DecimalFormat(format);return dec.format(f);}

10.浮点数输出为指定位数的科学计数法

public static String parseToCientificNotation(double d,int num) {// d为double,num为要显示的小数点位数String format = "0.";for (int i = 0; i < num; i++) {format += "#";}int cont = 0;DecimalFormat DECIMAL_FORMATER = new DecimalFormat(format);while (((int) d) != 0) {d /= 10;cont++;}return DECIMAL_FORMATER.format(d).replace(",", ".") + " x10^ -" + cont;}

1 0
原创粉丝点击