//char数组转换成byte数组
private byte[] getBytes (char[] chars) {
Charset cs = Charset.forName ("UTF-8");
CharBuffer cb = CharBuffer.allocate (chars.length);
cb.put (chars);
cb.flip ();
ByteBuffer bb = cs.encode (cb);
return bb.array();
}
//byte数组转换成char数组
private char[] getChars (byte[] bytes) {
Charset cs = Charset.forName ("UTF-8");
ByteBuffer bb = ByteBuffer.allocate (bytes.length);
bb.put (bytes);
bb.flip ();
CharBuffer cb = cs.decode (bb);
return cb.array();
}
//常用函数 package com.boomdts.weather_monitor.util; import java.nio.charset.Charset;
import java.io.*;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.util.Date;
import java.math.BigDecimal; public class CommonFunctions
{ //世纪秒(是指1970年1月1日0时0分到指定时间过去的秒数)转换为年月日,时分秒 public static String centurySecondToDateTime(long time)
{
Calendar ca = Calendar.getInstance();
//Date d = ca.getTime();
//long l = ca.getTimeInMillis();
//ca.set(1970, 0, 1);
//long L1970 = ca.getTimeInMillis();
//ca.setTime(d);
//ca.setTimeInMillis(l); String out = "";
GregorianCalendar gc = new GregorianCalendar();
//System.out.print( "上传上来的毫秒数 :" + time*1000 );
gc.setTimeInMillis(time * 1000);
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
out = sdformat.format(gc.getTime()); return out;
} //将十六进制字符串转换为double, 41AEF5C2
public static float hexStrToFloat(String str)
{
float result = 0;
try
{
int temp = Integer.parseInt(str.trim(), 16);
result = Float.intBitsToFloat(temp);
}
catch (NumberFormatException e)
{
long ltemp = Long.parseLong(str.trim(), 16);
//long ltemp = Integer.parseInt(str.trim(), 16);
result = Float.intBitsToFloat((int)ltemp);
}
//只保留小数点后两位
//result = (float)(Math.round(result*100))/100;
return result;
} //输入16进制字符串(如 5a5b5c),输出相反顺序的16进制字符串(5c5b5a)。
public static String reverseOrder(String s)
{ char[] chA = s.toCharArray();
int l = s.length();
for(int i =0; i< l/2; i=i+2)
{
char cTmp1= 0;
char cTmp2= 0;
cTmp1 = chA[i];
cTmp2 = chA[i+1];
chA[i] = chA[l-i-2];
chA[i+1] = chA[l-i-1];
chA[l-i-2] = cTmp1;
chA[l-i-1] = cTmp2;
}
String sRet = new String(chA);
return sRet;
}
/**
* 字符串转换成十六进制字符串
* @param String str 待转换的ASCII字符串
* @return String 如: [616C6B]
*/
public static String strToHexStr(String str)
{ char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit; for (int i = 0; i < bs.length; i++)
{
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
//sb.append(' ');
}
return sb.toString().trim();
} /**
* 十六进制转换字符串
* @param String str Byte字符串(Byte之间无分隔符 如:[616C6B])
* @return String 对应的字符串
*/
public static String hexStrToStr(String hexStr)
{
String str = "0123456789ABCDEF";
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
int n; for (int i = 0; i < bytes.length; i++)
{
n = str.indexOf(hexs[2 * i]) * 16;
n += str.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (n & 0xff);
}
return new String(bytes);
} /**
* bytes转换成十六进制字符串
* @param byte[] b byte数组
* @return String 每个Byte值之间空格分隔
*/
public static String byteToHexStr(byte[] b)
{
String stmp="";
StringBuilder sb = new StringBuilder("");
for (int n=0;n<b.length;n++)
{
stmp = Integer.toHexString(b[n] & 0xFF);
sb.append((stmp.length()==1)? "0"+stmp : stmp);
//sb.append(" ");
}
return sb.toString().toUpperCase().trim();
} /**
* bytes字符串转换为Byte值
* @param String src Byte字符串,每个Byte之间没有分隔符
* @return byte[]
*/
public static byte[] hexStrToBytes(String src)
{
int m=0,n=0;
int cc = src.length();
if(cc%2 != 0){
System.out.println("函数 hexStrToBytes 输入的字符为奇数,这有可能会有问题,输入的字符个数是: " + cc);
}
int l=src.length()/2;
byte[] ret = new byte[l];
String sSub ;
for (int i = 0; i < l; i++)
{
sSub = src.substring(i*2,i*2+2);
ret[i] = (byte)( Integer.parseInt(sSub, 16) ); /*
m=i*2+1;
n=m+1;
ret[i] = Byte.decode("0x" + src.substring(i*2, m) + src.substring(m,n));
*/
}
return ret;
} /**
* String的字符串转换成unicode的String
* @param String strText 全角字符串
* @return String 每个unicode之间无分隔符
* @throws Exception
*/
public static String strToUnicode(String strText)
throws Exception
{
char c;
StringBuilder str = new StringBuilder();
int intAsc;
String strHex;
for (int i = 0; i < strText.length(); i++)
{
c = strText.charAt(i);
intAsc = (int) c;
strHex = Integer.toHexString(intAsc);
if (intAsc > 128)
str.append("\\u" + strHex);
else // 低位在前面补00
str.append("\\u00" + strHex);
}
return str.toString();
} /**
* unicode的String转换成String的字符串
* @param String hex 16进制值字符串 (一个unicode为2byte)
* @return String 全角字符串
*/
public static String unicodeToString(String hex)
{
int t = hex.length() / 6;
StringBuilder str = new StringBuilder();
for (int i = 0; i < t; i++)
{
String s = hex.substring(i * 6, (i + 1) * 6);
// 高位需要补上00再转
String s1 = s.substring(2, 4) + "00";
// 低位直接转
String s2 = s.substring(4);
// 将16进制的string转为int
int n = Integer.valueOf(s1, 16) + Integer.valueOf(s2, 16);
// 将int转换为字符
char[] chars = Character.toChars(n);
str.append(new String(chars));
}
return str.toString();
}
/**
* 截取byte数据
* @param b 是byte数组
* @param j 是大小
* @return
*/
public static byte[] cutOutByte(byte[] b,int j){
if(b.length==0 || j==0){
return null;
}
byte[] bjq = new byte[j];
for(int i = 0; i<j;i++){
bjq[i]=b[i];
}
return bjq;
}
/**
* 合并两个byte数组
* @param pByteA
* @param pByteB
* @return
*/
public static byte[] getMergeBytes(byte[] pByteA, byte[] pByteB){
int aCount = pByteA.length;
int bCount = pByteB.length;
byte[] b = new byte[aCount + bCount];
for(int i=0;i<aCount;i++){
b[i] = pByteA[i];
}
for(int i=0;i<bCount;i++){
b[aCount + i] = pByteB[i];
}
return b;
} /**
* 字符转换为日期类型
* @param dateString
* @return
*/
public static Date parseDateTime(String dateString) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date result = null;
try {
result = df.parse(dateString);
} catch (Exception e) {
}
return result;
} /**
* 两个日期相减计算多少天
* @param firstDate
* @param lastDate
* @return A double days
*/
public static int compareDateToDays(Date firstDate, Date lastDate) {
if (firstDate == null || lastDate == null) {
System.out.print("NULL");
}
long time1 = firstDate.getTime();
long time2 = lastDate.getTime();
long tmpCal = time2 - time1;
long mm = 24 * 60 * 60 * 1000;
int days = (int) (tmpCal / mm);
return Math.abs(days);
} }
java 转换 小函数(不断增加中。。。)的更多相关文章
-
JS_ECMA基本语法中的几种封装的小函数-2
大家好!今天继续给大家写一下ECMA中的剩下的小函数以及实用的实例: 首先先给大家说一下字符串.数组.数学方法以及json的一点小知识点: 字符串方法: str.length str.charAt(i ...
-
JS_ECMA基本语法中的几种封装的小函数
先来回顾一下我们的字符串: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.l ...
-
java代码将excel文件中的内容列表转换成JS文件输出
思路分析 我们想要把excel文件中的内容转为其他形式的文件输出,肯定需要分两步走: 1.把excel文件中的内容读出来: 2.将内容写到新的文件中. 举例 一张excel表中有一个表格: 我们需要将 ...
-
FastReport调用Delphi中的人民币大写转换自定义函数
FastReport调用Delphi中的人民币大写转换自定义函数 FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje ...
-
JS_ECMA基本语法中的几种封装的小函数-1
今天给大家介绍js ECMA中几个封装的小函数以及一些常用的函数小案例: 1,找重复的函数 <script> //在数组里面找重复: function findInArr(n,arr){ ...
-
java 11-8 在大串中查找小串的案例
1.统计大串中小串出现的次数 举例: 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun& ...
-
java的小程序在html中的运行测试
java的小程序在html中的运行测试,打开vs2012,以网站模式打开,生成,调用iis临时服务器运行.
-
样条函数后续(java)--可在hive中执行的函数
之前写的样条插值算法只能在本地执行,但是我想要的是可在hive中执行的jar包,为了符合我的要求,经过痛苦.气愤.悲伤等一系列过程,终于实现了: 想要实现可在hive中执行的jar包,以下是具体步骤: ...
-
java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
随机推荐
-
CentOS7下安装chrome浏览器
在CentOS 7环境下安装chrome浏览器 1.修改yum源 在/etc/yum.repos.d/目录下新建文件google-chrome.repo,向其中添加如下内容: [google-chro ...
-
网页下载Google Play 的App
前言 当你想在google play上下载某个应用,而无奈手机的系统并没有安装google servicess,此刻是否有些捉急? 本文分享的是一个网站,它可以无需手机而直接通过网页下载Google ...
-
Unity3d 根据重力自动翻转
玩游戏时,经常有这样的体验.我正常是左横屏,手机翻转过来为右横屏,游戏界面也随着翻转为右横屏. Unity3D引擎,不需要写任何代码,只需要 Player Setting 设置即可: 如图所示:
-
c语言的发展历程
C语言的发展颇为有趣.它的原型ALGOL 60语言. 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言. 1967年,剑桥大学 ...
-
(五):C++分布式实时应用框架——微服务架构的演进
C++分布式实时应用框架--微服务架构的演进 上一篇:(四):C++分布式实时应用框架--状态中心模块 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律 ...
-
mysql常用脚本及命令记录
mysql导出用户权限 mysql中直接通过授权即可使用对应用户,不必使用创建用户命令(如CREATE USER 'xxx'@'%' IDENTIFIED BY 'XXX';)先建用户再授权. 方法一 ...
-
浏览器端类EXCEL表格插件 版本更新 - 智表ZCELL产品V1.1.0.1版本发布
智表(ZCELL),浏览器下纯JS表格控件,为您提供EXCEL般的智能体验! 纯国产化.高性价比的可靠解决方案. 更新说明 让大家久等了.因为最近忙其他项目,发布时间稍有延迟. 下次版本更新 ...
-
RabbitMQ的学习
生成者就是发送信息,消费者就是接收信息,队列就是存储数据的排队.消息通过你的应用程序和RabbitMQ进行传输,它们只能存储在队列中,队列容量没有限制,你要存储多少消息都可以——基本上是一个无限的缓冲 ...
-
python中执行py文件出错(提示File “<;stdin>;”,line 1,SyntaxError:invalid syntax)
解决办法: 上图中已通过输入python进入了python运行环境,出现>>>时候的不能再用python z.py 来运行hello.py文件: 应该通过exit()退出当前pyth ...
-
HttpWebRequest 高效并发问题
默认请求连接数 是2,在服务器操作系统上默认为10. 如果不修改这个并发连接限制,那么客户端同时可以建立的 http 连接数就只有2个或10个. System.Net.ServicePointMana ...