แปลงสตริงเป็น int


87

ฉันมีปัญหาในการแปลงสตริงเป็นจำนวนเต็ม ฉัน googled มัน แต่สิ่งที่ฉันหาได้คือการแปลง int เป็นสตริง มีใครรู้วิธีทำอีกบ้างไหม? ขอบคุณ.

คำตอบ:



22

เกี่ยวกับ

[@"7" intValue];

นอกจากนี้หากคุณต้องการNSNumberคุณสามารถทำได้

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];

6
เจ้านายที่ดี NSNumberFormatter นั้นซับซ้อน ... ฉันหมายถึง "คุณลักษณะสมบูรณ์"
Dave Dopson

4
ระวัง - ใน iOS7 numberFromStringดูเหมือนจะเป็นวิธีการอินสแตนซ์มากกว่าคลาสหนึ่งดังนั้นคุณควรทำ[[NSNumberFormatter new] numberFromString:@"7"];แทน
mgarciaisaia

@mgarciaisaia เราไม่ควรทำ[[[NSNumberFormatter alloc] init] numberFromString:@"7"];ตามstackoverflow.com/questions/719877/…
Michael Osofsky

3

ฉันใช้:

NSInteger stringToInt(NSString *string) {
    return [string integerValue];
}

และในทางกลับกัน:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

1
ตรวจสอบมูลค่าคืนของคุณ NSString *
AWF4vk

ฉันใช้ข้อมูลที่ดึงมาจาก NSUserDefaults ดังนั้นฉันควรใส่อะไรหลังจาก NSString * string =
MacN00b

สิ่งเหล่านี้จะใช้งานได้จริงหรือไม่? แน่นอนคำจำกัดความต้องลำไส้ใหญ่กึ่งหรือคุณจะผิดพลาดด้วยunrecognized selectorเพราะคุณจะจริงจะส่งไม่ได้@selector(intToString:) @selector(intToString)แน่นอนว่ามันควรจะเป็นแบบนี้แทน- (NSInteger) stringToInt:(NSString *)string;และ- (NSString *)intToString:(NSInteger)integer;
พอล

1
เป็นฟังก์ชัน C ทั้งคู่ จะต้องเป็นNSString *เช่นที่ @David กล่าว
Espresso

@Espresso ไชโยฉันไม่มีภูมิหลังในภาษา C ดังนั้นจึงมีเหตุผลมากขึ้นตอนนี้
Paul.s


1

นี่เป็นวิธีง่ายๆสำหรับการแปลงสตริงเป็น int

NSString *strNum = @"10";
int num = [strNum intValue];

แต่เมื่อคุณได้รับคุณค่าจากฟิลด์ข้อความแล้ว

int num = [txtField.text intValue];

โดยที่txtFieldเป็นทางออกของUITextField


1

ฉันต้องทำอะไรแบบนี้ แต่ต้องการใช้ getter / setter สำหรับฉัน โดยเฉพาะอย่างยิ่งฉันต้องการคืนความยาวจากฟิลด์ข้อความ คำตอบอื่น ๆ ก็ใช้ได้ดีเช่นกันฉันเพิ่งปรับตัวของฉันเล็กน้อยเมื่อโครงการโรงเรียนของฉันพัฒนาขึ้น

long ms = [self.textfield.text longLongValue];
return ms;

0
NSString *string = /* Assume this exists. */;
int value = [string intValue];

ฉันใช้ข้อมูลที่ดึงมาจาก NSUserDefaults ดังนั้นฉันควรใส่อะไรหลังจาก NSString * string =
MacN00b

1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "YOUR_KEY"];
Benjamin Mayo


0

อีกวิธีหนึ่ง: หากคุณกำลังทำงานกับสตริง C เช่น const char * C native atoi()จะสะดวกกว่า



0

ในการแปลงหมายเลขStringเป็นIntคุณควรทำสิ่งนี้:

let stringNumber = "5"
let number = Int(stringNumber)

นี่เป็นคำตอบที่ซ้ำกันทุกประการกับคำตอบที่มีอยู่
Pranav Kasetti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.