如何将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

参考技术A

java中把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 (计算机编程语言)

参考技术B

java语言中,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官方文档

参考技术C

一个不需手动捕捉异常的方法:

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 --> double
double d = Double.parseDouble("1.0");
String --> float
float f = Float.parseFloat("1.0f");
String --> int
int i = Integer.parseInteger("123");
呵呵,还有long也是这种用法,不过记得string在转换数值的时候,string必须是数值串。
如果包含其他字符,会报类型转化异常的。

以上是关于如何将String类型转换成任意基本类型的主要内容,如果未能解决你的问题,请参考以下文章

在JAVA中如何将String转换成Datetime类型

如何将DateTime类型转换成String类型

JavaScript类型转换

delphi 怎么把任意类型的指针转换成integer??一个关于tag的问题,

如何将string类型转换成short

请问,java里,如何把BigDecimal类型转成Integer