String与其他类型的转换

  首先,对于String类有一点是毫无疑问的:对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。

一. String与StringBuilder、StringBuffer

1.1 三者之间的比较

1.1.1 添加字符串
string1 += string2;

  String类后面添加字符串,在以上例子中,相当于将原有的string1变量指向的对象内容取出与string2变量指向的对象作相加操作再存进另一个新的String对象当中,再让string1变量指向新生成的对象。(其中string2也可以是一个字符串)。

StringBuilder str = new StringBuilder(string1);
StringBuffer str = new StringBuffer(string1);

  StringBuilder与StringBuffer类后面添加字符串,在以上例子中,并没有创建新的对象,append操作是在原有对象的基础上进行的,如果添加动作要执行多次的话,StringBuilder与StringBuffer在全部过程中只创建了一个对象,所占的资源要比String方式小得多。

1.1.2 性能及使用场景

  String、StringBuilder、StringBuffer三者的执行效率:  StringBuilder > StringBuffer > String

  当然这个是相对的,不一定在所有情况下都是这样。比如String str = "hello"+ "world"的效率就比 StringBuilder st = new StringBuilder().append("hello").append("world")要高。(String类的str在编译期间被JVM优化成了"helloworld")。

  因此,这三个类是各有利弊,应当根据不同的情况来进行选择使用:

  1.   当字符串相加操作或者改动较少的情况下,建议使用 String str="hello"这种形式;
  2.   当字符串相加操作较多的情况下,建议使用StringBuilder;
  3.   如果采用了多线程,则使用StringBuffer。

1.2 String与StringBuilder、StringBuffer之间的转换

1.2.1 String转换成StringBuilder与StringBuffer

有两种方法:

 1 //法一
 2 StringBuilder stringbuilder = New StringBuilder("abcd");
 3 StringBuilder stringbuilder = New StringBuilder(str1);
 4
 5 StringBuffer stringbuffer = New StringBuffer("efgh");
 6 StringBuffer stringbuffer = New StringBuffer(str2);
 7 //法二
 8 StringBuilder stringbuilder = New StringBuilder();
 9 stringbuilder.append(str1);
10
11 StringBuffer stringbuffer = New StringBuffer();
12 stringbuffer.append(str2)
1.2.2 StringBuilder与StringBuffer转换成String
String str1 = stringbuffer.toString();
String str2 = stringbuilder.toString();

二. String与int

2.1 将字串String转换成整数int

有两个方法:

1 //法一
2 int i = Integer.parseInt([String]);
3 int i = Integer.parseInt([String],[int radix]);
4 //法二
5 int i = Integer.valueOf(my_str).intValue();

2.2 将整数int转换成字串String

有三种方法:

1 //法一
2 String s = String.valueOf(i);
3 //法二
4 String s = Integer.toString(i);
5 //法三
6 String s = "" + i;

三. String与字符数组(char[])

3.1 String转换成字符数组(char[])

有两种方法:

1 //法一
2 char[] strChar = str.toCharArray();
3 //法二
4 int[] strChar = new int[str.length()];
5 for(int i = 0;i < str.length(); i++){
6   strChar[i] = (int)str.charAt(i);
7 }

3.2 字符数组(char[])转换成String

有两种方法:

1 char data[] = {‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘};
2 //法一
3 String str1 = new String(data);
4 //法二
5 String str2 = String.valueOf(data);

四. String与byte[]

4.1 string转换成byte[]

1 byte[] midbytes=isoString.getBytes("UTF8");
2 //为UTF8编码
3 byte[] isoret = srt2.getBytes("ISO-8859-1");
4 //为ISO-8859-1编码,其中ISO-8859-1为单字节的编码

4.2 byte[]转换成String

1 String isoString = new String(bytes,"ISO-8859-1");
2 String srt2=new String(midbytes,"UTF-8");

五. String与Date

详见:http://www.cnblogs.com/bmbm/archive/2011/12/06/2342264.html

参考:http://www.cnblogs.com/dolphin0520/p/3778589.html

http://zhangyuefeng1983.blog.163.com/blog/static/1083372520126693524870/

http://www.cnblogs.com/bmbm/archive/2011/12/06/2342264.html

时间: 2024-12-17 07:53:26

String与其他类型的转换的相关文章

String,Integer,int类型之间转换总结

今天学习了封装的知识理念,关于自动装箱和拆箱等手段来改变数据类型感到十分有意思,同时之间的相互转换也值得我们去牢记,当然,在工作中熟能生巧,只是为了梳理一下知识点,供大家参考: 自java7以后已经实现了自动装箱和自动拆箱,int和Integer之间的转换已经可以实现自动 下面是实际的操作代码 1 public class Integer04{ 2 public static void main(String[] args){ 3 //int--->Integer 4 Integer i1=In

Java中Long、String、Date类型之间转换工具类

import java.text.*; import java.util.*; public class DateFormat { /** * date类型进行格式化输出 * @param date * @return */ public static String dateFormat(Date date) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateSt

js中基本类型的转换,进制的转换

一.基本类型的转换 1.数字转字符串 //直接给数字加空的字符串. var num=20; var str=20+" "; console.log(typeof str);//string //使用String()函数,让数字更加显示的转为字符串 var num=20; var str=String(num); console.log(typeof str);//string //使用toString()方法.toString()有一个参数,用来指定转换的基数.(十进制/二进制/八进制

Delphi Byte数组与String类型的转换

string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符,实际长度是字符长度+1,是Delphi的简单类型: Str[0]存储着字符的个数,

Unicode环境下完成CString向string类型的转换

CString是MFC的字符串类,它不是基本类型,而是对字符串的封装,它是自适应的,在UNICODE环境下就是CStringW,在非UNICODE环境下就是CStringA. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Java不同类型字符转换String/int/Float/////

1.int & String int i=5678;String s=""; int->String: s=i+"";或 s=String.valueOf(i); String->int: i=Integer.parseInt(s);或 i=Integer.valueOf(s).intValue(); 2.String & Float String s="";Float f=12.21; String->Floa

C++ - string类型转换int类型

string类型转换int类型 本文地址: http://blog.csdn.net/caroline_wendy C语言转换形式: ... std::string str; int i = atoi(str.c_str()); ... C++转换形式(C++11): ... std::string str; int i = std::stoi(str); ... 同样, 可以使用 stol(long), stof(float), stod(double) 等. 参考: http://en.cp

【读书笔记】C#高级编程 第七章 运算符和类型强制转换

(一)运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != < > <= >= 赋值运算符 = += -= *= /= %= &= |= ^= <<= >>= 成员访问运算符(用于对象和结构) . 索引运算符(用于数组和索引器) [] 类型转换运算符 () 条件

PHP类型转换&amp;&amp;类型强制转换

获取数据类型 : 如果想查看某个表达式的值和类型,用 var_dump(). 如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype(). 要查看某个类型,不要用 gettype(),而用 is_type() 函数. ■字符串转换为数值 当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值. 如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值.否则就被当作整数. 该值由字符串最前面的部分决定.如果字符串以合法的数字数据开始,就用该数字作