2010-02-09 13 views
9

Câu hỏi khá đơn giản tôi cần lấy số nguyên từ người dùng và tôi chỉ biết cách lấy một chuỗi từ chúng. Vì vậy, nếu có một cách để có được một số nguyên từ người sử dụng hoặc để chuyển đổi chuỗi thành một số nguyên xin vui lòng cho tôi biết.String to Integer Smalltalk

+2

Chỉ cần tạo thành một int ngẫu nhiên; người dùng hiếm khi biết những gì họ muốn anyway! (cười) –

+0

Không, nó luôn luôn là số 7 vào thứ Sáu, nhưng nó có thể là số ngẫu nhiên vào bất kỳ ngày nào khác, trừ khi đó là thứ tư thứ tư của tháng và trời nhiều mây, trong trường hợp đó là 42. –

Trả lời

8

Tìm thấy nó:

'12345' asNumber. 
+0

Thật kỳ lạ, vìSố không thể xử lý cú pháp cơ số: ''16r12345' asNumber -> 16'. Làm thế nào để bạn cung cấp một cơ sở? – mcandre

1

This page dường như có một số ví dụ về chuyển đổi. Tìm kiếm Conversion:.

CẬP NHẬT

Hãy thử sử dụng asNumber

+0

i không thể tìm thấy chuỗi số nguyên trên trang đó và tôi đã thấy nó trước đây. Tôi sẽ tiếp tục nhìn vào nó. – Anton

+0

asNumber không nằm trên trang đó. – Anton

+0

Ah, có vẻ như bạn đã tìm ra nó :) –

4

Nếu bạn đang sử dụng Squeak hoặc Pharo, học cách sử dụng các "Message Finder".

Nhấp chuột trái vào nền, nhấp vào Công cụ> Trình tìm kiếm thư. Nhấp vào ô trên cùng bên trái. Loại:

'12345'. 12345. 

Nhấn Control-S và bạn có câu trả lời. Cụ thể, bạn có ba câu trả lời: asInteger, asNumberinitialIntegerOrNil.

+0

Không sử dụng Squeak hoặc Pharo – Anton

+2

Nếu bạn không sử dụng Squeak hoặc Pharo, tại sao không, và sau đó bạn nhận ra bạn cần phải xác định phương ngữ của bạn? –

2

Thỉnh thoảng bạn sẽ muốn xử lý các số trong các cơ sở khác nhau.

st> s := '3039'. 
'3039' 
st> Number readFrom: (ReadStream on: s) radix: 16. 
12345 
+0

Số readFrom: '16rff' => 255. Trong Squeak, và gần như chắc chắn trong Pharo. –