2、数据转换String相关
来源:互联网 发布:小而美的java开源项目 编辑:程序博客网 时间:2024/06/13 05:44
参看:http://www.cnblogs.com/andy2005/archive/2006/07/24/458564.html
http://www.cnblogs.com/bmbm/archive/2011/12/06/2342264.html
1、各种数据转换为String
将整数 int 转换成字串 String
A. 有叁种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
注: Double, Float, Long 转成字串的方法大同小异.
Date-->String
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString());
反向转换:
通过类包装器
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
String-->Date
String s="2015-12-12";
SimpleDateFormat sf= new SimpleDateFormat("yyyy-MM-dd");
Date d = sf.parse(s);
System.out.println(d);
判断字符串中是否包含某一个子串
s2.indexOf(s1)>=0 以s1第一次出现位置判断
s2.contains(s1) 包含,返回boolean
判断字符串是否为空
s2.length==0;
s2.isEmpty();
其他常用
(startsWith/endsWith/equals/equalsIgnorecase/toUpperCsae/toLowerCsae/trim/replace(oldchar,newchar)/split/subString(begin,end)/
compareTo(顺序比较,相等值为0),equals()方法比较字符串对象中的字符,==比较两个对象是否引用的同一实例。)
字符数组--->String
char[] data={'a','b','c'};
String s=new String(data);
字符串数组--->String
String[] str = {"abc", "bcd", "def"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++){
sb. append(str[i]);
}
String s = sb.toString();
将字符串转成字符组
String s= "skx";
char[] data=s.toCharArray();
String.format()方法
参看:http://www.cnblogs.com/linjiqin/archive/2013/06/21/3147943.html
1、转换符%s: 字符串类型,如:"ljq"%b: 布尔类型,如:true%d: 整数类型(十进制),如:99%f: 浮点类型,如:99.99%%: 百分比类型,如:%%n: 换行符 */@Testpublic void test1(){ String str=null; str=String.format("Hi, %s", "林计钦"); // 格式化字符串 System.out.println(str); // 输出字符串变量str的内容 System.out.printf("3>7的结果是:%b %n", 3>7); System.out.printf("100的一半是:%d %n", 100/2); System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85); System.out.printf("上面的折扣是%d%% %n", 85);}/*2、常见日期时间格式化c: 包括全部日期和时间信息 星期六 十月 27 14:21:20 CST 2007F: "年-月-日"格式,如:2007-10-27D: "月/日/年"格式,如:10/27/07r: "HH:MM:SS PM"格式(12时制),如:02:25:51 下午T: "HH:MM:SS"格式(24时制),如:14:28:16R: "HH:MM"格式(24时制),如:14:28 */@Testpublic void test2(){ Date date=new Date(); // 创建日期对象 System.out.printf("全部日期和时间信息:%tc%n", date);//格式化输出日期或时间 System.out.printf("年-月-日格式:%tF%n", date); System.out.printf("月/日/年格式:%tD%n", date); System.out.printf("HH:MM:SS PM格式(12时制):%tr%n", date); System.out.printf("HH:MM:SS格式(24时制):%tT%n", date); System.out.printf("HH:MM格式(24时制):%tR%n", date);}/*3、格式化日期字符串b或者h: 月份简称,如中:十月英:Oct B: 月份全称,如中:十月英:October a: 星期的简称,如中:星期六英:Sat A: 星期的全称,如:中:星期六英:Saturday C: 年的前两位数字(不足两位前面补0),如:20y: 年的后两位数字(不足两位前面补0),如:07Y: 4位数字的年份(不足4位前面补0),如:2007j: 一年中的天数(即年的第几天),如:300 m: 两位数字的月份(不足两位前面补0),如:10d: 两位数字的日(不足两位前面补0),如:27e: 月份的日(前面不补0),如:5 */@Testpublic void test3(){ Date date=new Date(); // 创建日期对象 String str=String.format(Locale.US,"英文月份简称:%tb",date); // 格式化日期字符串 System.out.println(str); // 输出字符串内容 System.out.printf("本地月份简称:%tb%n",date); str=String.format(Locale.US,"英文月份全称:%tB",date); System.out.println(str); System.out.printf("本地月份全称:%tB%n",date); str=String.format(Locale.US,"英文星期的简称:%ta",date); System.out.println(str); System.out.printf("本地星期的简称:%tA%n",date); System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date); System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date); System.out.printf("一年中的天数(即年的第几天):%tj%n",date); System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date); System.out.printf("两位数字的日(不足两位前面补0):%td%n",date); System.out.printf("月份的日(前面不补0):%te",date);}/*4、格式化时间字符串H: 2位数字24时制的小时(不足2位前面补0),如:15I: 2位数字12时制的小时(不足2位前面补0),如:03k: 2位数字24时制的小时(前面不补0),如:15l: 2位数字12时制的小时(前面不补0),如:3M: 2位数字的分钟(不足2位前面补0),如:03S: 2位数字的秒(不足2位前面补0),如:09L: 3位数字的毫秒(不足3位前面补0),如:015N: 9位数字的毫秒数(不足9位前面补0),如:562000000 p: 小写字母的上午或下午标记,如:中:下午英:pm z: 相对于GMT的RFC822时区的偏移量,如:+0800Z: 时区缩写字符串,如:CSTs: 1970-1-1 00:00:00 到现在所经过的秒数,如:1193468128Q: 1970-1-1 00:00:00 到现在所经过的毫秒数,如:1193468128984 */@Testpublic void test4(){ Date date=new Date(); // 创建日期对象 System.out.printf("2位数字24时制的小时(不足2位前面补0):%tH%n",date); System.out.printf("2位数字12时制的小时(不足2位前面补0):%tI%n",date); System.out.printf("2位数字24时制的小时(前面不补0):%tk%n",date); System.out.printf("2位数字12时制的小时(前面不补0):%tl%n",date); System.out.printf("2位数字的分钟(不足2位前面补0):%tM%n",date); System.out.printf("2位数字的秒(不足2位前面补0):%tS%n",date); System.out.printf("3位数字的毫秒(不足3位前面补0):%tL%n",date); System.out.printf("9位数字的毫秒数(不足9位前面补0):%tN%n",date); String str=String.format(Locale.US,"小写字母的上午或下午标记(英):%tp",date); System.out.println(str); // 输出字符串变量str的内容 System.out.printf ("小写字母的上午或下午标记(中):%tp%n",date); System.out.printf("相对于GMT的RFC822时区的偏移量:%tz%n",date); System.out.printf("时区缩写字符串:%tZ%n",date); System.out.printf("1970-1-1 00:00:00 到现在所经过的秒数:%ts%n",date); System.out.printf("1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ%n",date);}}
String,StringBuffer与StringBuilder的区别
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
Java.lang.StringBuffer线程安全的可变字符序列。StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
例如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含“startle”,而 z.insert(4, "le") 将更改字符串缓冲区,使之包含“starlet”。
java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。
StringHelper
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.UUID;import org.loushang.bsp.security.context.GetBspInfo;import com.sz.common.util.DateUtil;import com.sz.common.util.StringUtil;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/** * String帮助 * @author Meteor * */public class StringHelper {/** * 日期格式的加减 * @throws ParseException * @param format 需要转的格式 * @param type(年、月、日) * @param len(增加和减少的值) * @param str * @return str * @throws ParseException */public static String dateAdd(String type,int len,String str,String format) throws Exception {SimpleDateFormat sdf=new SimpleDateFormat(format);if(StringUtil.isEmpty(str)){str=DateUtil.getCurrentDate();}Date dt= sdf.parse(str);Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); if(type.indexOf("年")>-1){ rightNow.add(Calendar.YEAR,len);//日期加减 }else if(type.indexOf("月")>-1){ rightNow.add(Calendar.MONTH,len);//日期加减 }else if(type.indexOf("日")>-1){ rightNow.add(Calendar.DAY_OF_YEAR,len);//日期加减 } Date dt1=rightNow.getTime(); String reStr = sdf.format(dt1); return reStr;}public static int toInt(String str){if(isEmpty(str)){return 0;}else{try{return Integer.valueOf(str).intValue();}catch(NumberFormatException e){return 0;}}}public static int toInt(String str,int num){if(isEmpty(str)){return num;}else{try{return Integer.valueOf(str).intValue();}catch(NumberFormatException e){return num;}}}public static boolean isEmpty(String str){ if(null==str||"null".equals(str)||"".equals(str)||0==str.length()){return true;}else return false;}public static boolean isNotEmpty(String str){ return !isEmpty(str);}/** * 将对象转换为字符串 * @param obj * @return String */public static String ToString(Object obj){if(obj==null)return "";return obj.toString();}/** * 将对象转换为字符串 * @param obj * @return String */public static String ToString(Object obj,String isNullToShow){if(obj==null) return isNullToShow;return obj.toString();}/** * 获取字符串的长度,中文占一个字符,英文数字占半个字符 * * @param value 指定的字符串 * @return 字符串的长度 */ public static double length(String value) { double valueLength = 0; String chinese = "[\u4e00-\u9fa5]"; // 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 for (int i = 0; i < value.length(); i++) { // 获取一个字符 String temp = value.substring(i, i + 1); // 判断是否为中文字符 if (temp.matches(chinese)) { // 中文字符长度为1 valueLength += 1; } else { // 其他字符长度为0.5 valueLength += 0.5; } } //进位取整 return Math.ceil(valueLength); } // 将 s 进行 BASE64 编码 public static String getBASE64(String s) { if (s == null) return null; return (new BASE64Encoder().encode(s.getBytes())); } //base64解密public static String getFromBASE64(String s) { if (s == null) return null; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); return new String(b); } catch (Exception e) { return null; } } //UUID码public static String getUUID32() { return UUID.randomUUID().toString().replace("-", "");}/** * 将对象转换为字符串 且去掉含有":"和","; * @param obj * @return String */public static String ToStringFormat(String obj){if(obj==null)return "";return obj.toString().replace(":","").replace(",","");}/*** 从身份证获取出生日期* @param cardNumber 已经校验合法的身份证号* @return Strig YYYY-MM-DD 出生日期*/public static String getBirthDateFromIdCard(String cardNumber){if(StringUtil.isEmpty(cardNumber)){return "1900-01-01";}String card = cardNumber.trim(); String year; String month; String day; if (card.length()==18){ //处理18位身份证 year=card.substring(6,10); month=card.substring(10,12); day=card.substring(12,14); }else{ //处理非18位身份证 year=card.substring(6,8); month=card.substring(8,10); day=card.substring(10,12); year="19"+year; } if (month.length()==1){ month="0"+month; //补足两位 } if (day.length()==1){ day="0"+day; //补足两位 } return year+"-"+month+"-"+day;}/** * 审批意见自动添加审批人和审批时间信息 * @param str * @return */public static String resetYj(String str){if(!StringUtil.isEmpty(str)){str += "(" + GetBspInfo.getBspInfo().getUserName() + "-" + DateUtil.getCurrentDateTime() + ")";}return str;}}
- 2、数据转换String相关
- Rails string字符串相关转换
- Rails string字符串相关转换
- string与int转换相关函数
- 从String数据转换到Int数组
- 从String数据转换到Int数组
- 从String数据转换到Int数组
- java String与Blob类型数据转换
- java String与Blob类型数据转换
- 将整型数据转换为string类型
- unsigned char* 类型数据转换字符串 string
- js string hex ascii 数据转换
- java 数据转换,输出相关操作
- 将postData数据转换为Hashtable<String, String[]>
- Java中String字符编码(CharSet)转换的相关问题
- DateTime与String之间的转换,及DateTime相关详解
- 转换相关,string,Parse,Convert,超出范围的赋值,
- 基本数据型态转换成 String,String 转换成 数字的基本数据型态
- 让我们彻底搞懂C/C++函数指针吧(一)
- 开源中国iOS客户端学习——(八)网络通信AFNetworking类库
- oracle中plsql developer工具的commandwindow 和 sqlwindow有什么区别啊
- AndroidUI效果--开源项目IndexableListView(字母索引)
- jsp页面errorPage设定,没有跳转,出现500错误
- 2、数据转换String相关
- 用Jstack跟踪Cpu占用率的Java线程
- Objective-C语法入门
- 推荐体系之协同过滤概述
- oracle的sql汇总,性能,sql执行顺序
- 如何有效提升业务员管理效率?
- socket监控进程,并对程序执行有关操作。
- MySQL内核月报 2015.01
- 网址收藏