C#的string转换成int问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#的string转换成int问题相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace third

class Program

static void Main(string[] args)


int a = System.Int32.Parse("-42");//语句1
Console.WriteLine(a+1);//语句2
Console.WriteLine(-42 + 1);//语句3




请问:用语句1实现语句2和直接使用语句3没什么区别啊,而且还比语句3多点。那么语句1到底有什么意义?怎么用才能体现他的价值啊?请说的详细点。

语句1是 声明一个变量 a 并用.net的函数Parse(string) 将其字串转换成数字,前提是字符串可以转换,若出现字母等异常字符则转换失败,
语句2是在语句1的基础上 将数字 -42 +1 得到结果 -41并将其打印在Console(命令台)如果没有报错的话,也是隐士的把数字-41转换成了字符串打印出来,
语句3则没有用到上诉变量,直接使用数字常量运算 得到结果 -41 然后打印出来。

使用的时候一般不会直接在Parse中写入-42常量 一般是去textBox中区,所以取到的文本是字符串,字符串之间不能进行算术运算 "-42"+"1" 结果是 连接字符串"-421",所以必须转换成数字-42然后与数字 1进行 加法运算得到结果 -41 而不是进行 字符串的连接处理
运算符 + 有重载
参考技术A 在这样是没啥区别,因为干的事情是一样的,都是-42+1
但是因为在这里,-42,是已知的
语句1涉及到数据类型的转换,把字符串转换成了整型
以后经常会用得到

比如一个textbox,用户输入的时候,用户输入什么,这是未知的,
所以你无法用语句3的方式来操作,得到的是string,
但是你要把它变为整型,就要用到语句1的语法了

多看几遍,我相信你会懂的。
参考技术B 直接实现你这个简单的 -42+1 的功能的确是没有区别
但语句1实现的功能在于:
在符合数字格式的 string 到 int 类型转换过程中使用,并可以对错误的 string 数字格式的抛出相应的异常
举个例子:
string stringType = "12345";
int intType = (int)stringType; //错误,string 类型不能直接转换为 int 类型
int intType = Int32.Parse(stringType); //正确
看到上面这个例子了吗?
在进行类型转化的时候
当你输入的是字符串型的时候,C#是不会进行自动转换的,甚至用(int)都不可以
只能用Int32.Parse来进行显示转换

c# 中如何把 string 类型如何转换为uint类型啊?

如题,如何转换阿??
能转吗?大哥?

小弟,大哥已经转了都。。。。

可以使用Convert,使用uint.Parse()或uint.TryParse()方法更好.尤其TryParse,不会出现异常.转换成功返回true,转换结果作为输出参数.否则返回false. 参考技术A uint.TryParse();

转换过程为:
(1)uint-->byte[];
(2)byte[]-->char[];
(3)char[]-->string;
这几种类型的转换过程为
uint--->byte[]
byte[] bpara =System.BitConverter.GetBytes(uint upara);

byte[]--->uint
uint upara= System.BitConverter.ToUint32(bpara);

byte--->char
system.convert.tochar(bpara);

char--->byte
system.convert.tobyte(cpara);

byte[]--->char[]
(1)char[] cpara= System.Text.Encoding.Default.GetChars(bpara);(1)
(2)char[] cpara=new char[bpara.length];
for(int i=0;i <bpara.length;i ++)char[i]=system.convert.tochar(bpara[i]);
(3)char[] cpara= new ASCIIEncoding().GetChars(bpara);

char[]--->byte[]
(1)byte[] bpara= System.Text.Encoding.Default.GetBytes(cpara);
(2) byte[] bpara= new ASCIIEncoding().GetBytes(cpara);
char[]--->string
String spara=new String(cpara);

string---char[]
char[] cpara=spara.ToCharArray()
参考技术B 呵呵,“大哥”用词不当了,人家可是女性
不是说了么,string如果是“123”就可以转换,Convert.ToUInt32()就行了
但是如果string是“abc”,那怎么也转换不了啊
参考技术C 用(Unit) 或Convert.ToUInt64()强行转换 参考技术D 能转吗?大哥?

以上是关于C#的string转换成int问题的主要内容,如果未能解决你的问题,请参考以下文章

C#中怎么将string转换成int型

C#中怎么将string转换成int型

C#中怎么将string转换成int型

C# 无法将类型 system.DateTime转换成 string[]

在c#中sring和int类能相互转化吗忘正真的高手指点一二,谢谢了。

C#中如何把int转换成两个字符的string