如何将String类型转换成任意基本类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将String类型转换成任意基本类型相关的知识,希望对你有一定的参考价值。
参考技术A 使用反编译软件Reflector打开System.Web.Mvc(直接在VS2008下右键选择Reflector打开就行了,默认位置在C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 1.0\Assemblies\System.Web.Mvc.dll)顺着asp.net mvc的访问路径,一路到了下来。发现原来还有一个这么简单的方法,这里直接把我简单的DEMO列出来,相信大家都很容易看明白了:
using System;
using System.ComponentModel;
namespace YcoeXu.Common
public static class StringExtensions
/// <summary>
/// 将字符串格式化成指定的数据类型
/// </summary>
/// <param name="str"></param>
/// <param name="type"></param>
/// <returns></returns>
public static Object Format(this String str, Type type)
if (String.IsNullOrEmpty(str))
return null;
if (type == null)
return str;
if (type.IsArray)
Type elementType = type.GetElementType();
String[] strs = str.Split(new char[] ';' );
Array array = Array.CreateInstance(elementType, strs.Length);
for (int i = 0, c = strs.Length; i < c; ++i)
array.SetValue(ConvertSimpleType(strs[i], elementType), i);
return array;
return ConvertSimpleType(str,type);
private static object ConvertSimpleType(object value, Type destinationType)
object returnValue;
if ((value == null) || destinationType.IsInstanceOfType(value))
return value;
string str = value as string;
if ((str != null) && (str.Length == 0))
return null;
TypeConverter converter = TypeDescriptor.GetConverter(destinationType);
bool flag = converter.CanConvertFrom(value.GetType());
if (!flag)
converter = TypeDescriptor.GetConverter(value.GetType());
if (!flag && !converter.CanConvertTo(destinationType))
throw new InvalidOperationException("无法转换成类型:" + value.ToString() + "==>" + destinationType);
try
returnValue = flag ? converter.ConvertFrom(null, null, value) : converter.ConvertTo(null, null, value, destinationType);
catch (Exception e)
throw new InvalidOperationException("类型转换出错:" + value.ToString() + "==>" + destinationType, e);
return returnValue;
DEMO:
在配置文件里自定义配置:
1. 在<configSections></configSections>节点内添加节点:
<section name="XuConfig" type="System.Configuration.NameValueSectionHandler" />
2. 写配置看起来会是这样的:
<configSections>
//..其它代码
<section name="XuConfig" type="System.Configuration.NameValueSectionHandler" />
</configSections>
<XuConfig>
<add key="ID" value="123"/>
<add key="Name" value="YcoeXu"/>
<add key="Roles" value="Member,Admin"/>
</XuConfig>
写个类自动加载
using System;
using System.Reflection;
using System.Collections.Specialized;
using System.Configuration;
using YcoeXu.Common;
namespace YcoeXu.Test
public class XuConfig
private XuConfig()
private static XuConfig config = null;
private static XuConfig Instance
get
if (config == null)
config = new XuConfig();
Type type = typeof(XuConfig);
//从配置文件里读取XuConfig节点
NameValueCollection xuConfig = (NameValueCollection)ConfigurationManager.GetSection("XuConfig");
//根据Key匹配对应的属性
foreach (String key in xuConfig.AllKeys)
PropertyInfo pi = type.GetProperty(key);
if (pi == null || String.IsNullOrEmpty(xuConfig[key]))
continue;
//自动转换类型并注入值
pi.SetValue(config, xuConfig[key].Format(pi.PropertyType), null);
return config;
public int ID set; get;
public String Name set; get;
public Role[] Roles set; get;
public void Test()
Console.WriteLine(XuConfig.Instance.Name);
Console.WriteLine(XuConfig.Instance.ID);
foreach (Role r in XuConfig.Instance.Roles)
Console.WriteLine(r.ToString());
public enum Role
Guest,
Member,
Manager,
Admin
注意了,一定要添加一个引用:System.Configuration
这里对String进行了一些扩展,使它可以直接当成String对象的方法访问了
java中如何把一个String类型的变量转换成double型的?
Double.parseDouble(String类型变量)
例如定义String变量A为“10”,将String转化为Double变量。
我写出来了,你可以看一下,如下图:
扩展资料:
Javascript具有的数据类型。
有5种基本数据类型:number(整形和浮点型)、string、null、boolean和undefined。此外还有一种复杂的数据类型—Object,Object本质上是由一组无序的名值对象组成的,如Date对象是一个日期和时间类型。
String对象是动态对象,需要创建对象实例后才能引用它的属性和方法。在创建一个String对象变量时,可以使用new运算符来创建,也可以直接将字符串赋给变量。例如:strValue="Hello"与strVal=new String("hello")是等价的。
double(双精度浮点型)是计算机使用的一种资料型别。比起单精度浮点数(float),double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。
它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308
参考资料:百度百科_string
参考技术Ajava中把String类型的变量转换成double类型变量的方法:
对于数值的字符串"12345",将其转化成数字12345做法如下:
String s="12345";
double d;
d=Double.parseDouble(s);
转化完成。
扩展内容:
(1)在Java中有8种数据类型来存储数值、字符和布尔值。
(2)整数型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
(3)整型数据类型有:byte、short、int、long
(4)布尔型数据类型有:true、false
参考资料:百度百科-Java (计算机编程语言)
参考技术Bjava语言中,String类型变量转换成double类型有如下几种:
Double.parseDouble(String)
Double.valueOf(String).doubleValue()
例如String a = "123.45",然后double b = Double.parseDouble(a),则b值为123.45。
扩展资料
Java语言中double类型转化为String类型:
double b = 123.45;
String a = String.valueOf(b);
转换过程中可能出现转换失败的可能,最好处理一下异常。
参考资料
oracle java语言api官方文档
一个不需手动捕捉异常的方法:
String str = "5.3739";double d = new Double(str)。
这种方法,没必要每次对每个细节都要手动捕捉异常,只需要对应用层进行捕捉异常就即可。这样的好处有两点:
1、处理异常方便,简洁明了。
2、代码不会到处有庸肿难看;另外有可能会留下没有被遇料到异常。
拓展资料:
int 转化成String:
int i=10;
String str=Integer.toString(i);
double 转化成String:
double d=10.0;
String str=Double.toString(d);
String 转化成double:
String str="123456";
double d=Double.valueOf(str).doubleValue();
参考技术D String --> doubledouble d = Double.parseDouble("1.0");
String --> float
float f = Float.parseFloat("1.0f");
String --> int
int i = Integer.parseInteger("123");
呵呵,还有long也是这种用法,不过记得string在转换数值的时候,string必须是数值串。
如果包含其他字符,会报类型转化异常的。
以上是关于如何将String类型转换成任意基本类型的主要内容,如果未能解决你的问题,请参考以下文章