2013-08-16 24 views
-5

我想分析11個字符的數字。如何在c#中解析數字?

例如;號碼是12345678900

解析它應該是; 1234 5678 900

我該怎麼做?

+8

這不是'parse'的意思。你想格式化一個字符串,還是你想要一個'int'? – SLaks

+0

解析你應該使用'var number = long.Parse(「12345678900」);',另一部分是一個格式化的字符串。 – Habib

+0

一個int至多有10個字符:) long.TryParse有什麼問題?你想達到什麼目的? – Save

回答

2

根據你的榜樣,你可以使用以下命令:

var numString = 12345678900.ToString(); 
var result1 = Convert.ToInt32(numString.Substring(0, 4)); //1234 
var result2 = Convert.ToInt32(numString.Substring(4, 4)); //5678 
var result3 = Convert.ToInt32(numString.Substring(8, 3)); //900 
+0

所以感謝,它的工作原理:) –

+0

如果你知道這只是4個字符,爲什麼使用的Int32,而不是Int16的? –

+0

@EmrahŞentürk歡迎你,請不要忘記,以紀念答案是正確的:) – Oliver

1

像這樣的東西可能會工作。

int number = 12345678900; 
StringBuilder sb = new StringBuilder(); 
String nums = number.ToString(); 
char[] numsChar = nums.ToCharArray(); 

for(int x = 1; x < numsChar.length; x++){ 
    if(x%4==0) 
    sb.Append(numsChar[x-1] + @" "); 
    else 
    sb.Append(numsChar[x-1]); 
} 

String parsedNumber = sb.ToString(); 
+0

這是一個可怕的解決方案,真正醜陋的代碼。這真的不應該建議新人們這樣的代碼 – Tseng

+0

@Tseng感謝您的輸入寫。 –

1

,如果你有11個字符,其代表這樣你就可以使用這樣的

string num = "12345678901"; 
num.ToString("0000 0000"); 

我不知道,但我想你想顯示你的電話號碼作爲電話號碼的號碼 字符串易記,所以來看看在MSDN

0

ToString方法規範假設你的意思是你想要的結果字符串「1234 5678 900」:

int num = 12345678900; 
string numString = num.toString(); 

string result = String.Format("{0} {1} {2}",numString.SubString(0,4),numString.SubString(4,4),numString.SubString(8,3)); 
1

如果你談論的是包含數字字符,那麼你可以使用這個字符串:

String.Format("{0:(####) #### ###}", 12345678900); OR 
String.Format("{0:(####) #### ###}", txtPhoneNumber.text); 
0

你可以這樣做:

Value.ToString("N", CultureInfo.InvariantCulture); 

然後更換點,並用空格逗號。 ;-)

0
long numberlong = 12345678900; 
string number = numberlong.ToString(); 
int first = Convert.ToInt32(number.Substring(0, 4)); 
int second = Convert.ToInt32(number.Substring(4, 4)); 
int third = Convert.ToInt32(number.Substring(8, 3)); 
label1.Text = first.ToString() + " " + second.ToString() + " " + third.ToString();