Chuyển đổi một chuỗi thành một int


87

Tôi đang gặp sự cố khi chuyển đổi một chuỗi thành một số nguyên. Tôi đã tìm kiếm nó nhưng tất cả những gì tôi có thể tìm thấy là cách chuyển đổi một int thành một chuỗi. Có ai biết làm thế nào để làm điều đó theo cách khác xung quanh? Cảm ơn.

Câu trả lời:



22

Làm thế nào về

[@"7" intValue];

Ngoài ra, nếu bạn muốn, NSNumberbạn có thể làm

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

6
chúa tốt NSNumberFormatter rất phức tạp ... ý tôi là "tính năng hoàn chỉnh".
Dave Dopson

4
Coi chừng - trong iOS7 numberFromStringcó vẻ là một ví dụ phương pháp chứ không phải là một lớp một, vì vậy bạn nên làm [[NSNumberFormatter new] numberFromString:@"7"];để thay thế.
mgarciaisaia

@mgarciaisaia chúng ta không nên làm [[[NSNumberFormatter alloc] init] numberFromString:@"7"];theo stackoverflow.com/questions/719877/...
Michael Osofsky

3

Tôi sử dụng:

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

Và ngược lại:

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

1
kiểm tra giá trị trả lại của bạn. NSString *
AWF4vk

Tôi đang sử dụng dữ liệu kéo từ NSUserDefaults vì vậy những gì tôi nên đặt sau khi NSString * string =
MacN00b

Liệu một trong hai điều này có thực sự hoạt động? Chắc chắn rằng các định nghĩa cần có dấu chấm phẩy nếu không bạn sẽ bị lỗi unrecognized selectorbởi vì bạn thực sự sẽ @selector(intToString:)không gửi @selector(intToString). Chắc chắn nó phải như thế này thay thế - (NSInteger) stringToInt:(NSString *)string;- (NSString *)intToString:(NSInteger)integer;
Phao

1
Cả hai đều là hàm C. Nó cần phải được NSString *mặc dù, như @David đã nói.
Espresso vào

@Espresso cổ vũ tôi không có nền tảng về C, do đó có ý nghĩa hơn bây giờ
Paul.s


1

Đây là giải pháp đơn giản để chuyển đổi chuỗi thành int

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

nhưng khi bạn nhận được giá trị từ trường văn bản ,

int num = [txtField.text intValue];

trong đó txtField là một đầu ra của UITextField


1

Tôi đã phải làm một cái gì đó như thế này nhưng muốn sử dụng getter / setter cho tôi. Đặc biệt, tôi muốn quay trở lại từ một trường văn bản. Các câu trả lời khác cũng hoạt động tốt, tôi chỉ cần điều chỉnh lại một chút khi dự án trường học của tôi phát triển.

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

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

Tôi đang sử dụng dữ liệu kéo từ NSUserDefaults vì vậy những gì tôi nên đặt sau khi NSString * string =
MacN00b

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

0

Rất dễ..

int (name of integer) = [(name of string, no ()) intValue];


0

Tuy nhiên, một cách khác: nếu bạn đang làm việc với một chuỗi C, ví dụ như const char *, thì C gốc atoi()sẽ thuận tiện hơn.


0

Bạn cũng có thể sử dụng như:

NSInteger getVal = [self.string integerValue];


0

Để chuyển đổi một số Chuỗi thành một Int , bạn nên làm như sau:

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

Đây là một bản sao chính xác của một câu trả lời hiện có.
Pranav Kasetti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.