01/10/2018, 17:17
Chuyển số sang chuỗi mà vẫn giữ số 0 ở đầu
A/c cho e hỏi e muốn nhập vào 1 số rồi chuyển số đó sang dạng chuỗi e có sử dụng hàm String.valueof() nhưng khi nhập vào số có số 0 ở đầu thì nó bị mất số 0 vd: 01, 011…–>1,11…
A/c làm qua rồi cho e cách giải quyết với ạ
Bài liên quan
Nhập vào biến string luôn là xong. Nhanh, gọn, nhẹ.
phải nhập số nguyên ấy ạ với lại yêu cầu là số nhập có thể có 0 hoặc k có 0 ạ
Nếu bạn nhập số nguyên, các số 0 đầu Java tự xóa r ._.
Cái
nextInt()
nhập String rồi gọiparseInt(str)
sau đó mới return ra int.Tuy nhiên parseInt dùng các tính toán để convert sang Int nên số 0 của bạn bị triệt tiêu theo.
-> Thầy cô làm vậy bắt bẻ quá? Hoặc ban đang hiểu sai ý đồ thầy cô? O_O
Ref:
http://www.docjar.com/html/api/java/util/Scanner.java.html (Dòng 2063)
http://www.docjar.com/html/api/java/lang/Integer.java.html (Dòng 444)
Nếu biết chắc chắn số nguyên nhập vào có giá trị nào thì dùng
Còn nếu như chỉ thêm trường hợp có 1 số 0 vào trước thôi thì mình code bạn xem. Cái này đúng với mọi số nguyên nhập vào, nhưng chỉ thêm 1 số 0 vào trước thôi
StringUtils có hàm leftpad đó, tìm hiểu thử.
Trong thực tế nhiều trường hợp như vậy nè, ID bắt buộc có 6 chữ số, nếu là 1 thì phải là 000001
003456,
cho nên thầy yêu cầu vậy cũng không vấn đề gì :v
ID không phải là số mặc dù có thể nó trông giống như số bạn nhé. Số thì sẽ không có số 0 đứng đầu vì nó vô nghĩa. Có thể dễ dàng thấy được sự phân biệt này giữa cách đọc ID và đọc 1 số
VD: với chuỗi 123456
nếu là số đọc là: 1 trăm 2 mươi 3 ngàn 4 trăm 5 mươi 6
nếu là ID hoặc dạng khác sẽ đọc là: 1 2 3 4 5 6
Thì nó vẫn là “chữ số” thôi. Sao lại không phải nhỉ -.-
Bạn đừng nhầm giữa chữ số và số. Số mang giá trị còn chữ số là kí tự. Chữ số là các kí tự từ 0-9 còn số là tổ hợp các chữ số theo 1 trật tự nào đó
Thằng nào cũng mang giá trị cả, có điều số tính toán được, chữ số chứa thông tin. mà tớ có lầm lẫn gì đâu nhỉ
Nếu vậy thì mình nghĩ là bạn nên cho nhập vào là dạng String luôn, chứ Integer thì sẽ bỏ hết mấy cái số “0” ở đầu
Có phải là bạn muốn kiểm tra đó có phải là một số nguyên không á ? Vậy thì bạn có thể code 1 cái đệ quy để làm việc đó thôi
Thế thì bạn nên xem lại kiến thức toán học cơ sở rồi. Bạn đang nhầm lẫn nghiêm trọng giữa số và chữ số rồi. 1 chuỗi trông giống như số chưa chắc đã là số. Bạn có thể xem lại lịch sử toán học. Con người có thể làm tính ngay cả khi chưa có đầy đủ các chữ số.
Mình thấy có sự hiểu nhầm giữa 2 khái niệm trong Database, gọi là Nominal Attribute và Numeric Attribute. Khái niệm Attribute giống như attribute trong sơ đồ EER, hay column trong relation bên relational database.
Trước tiên nói sơ qua về từng khái niệm attribute, cụ thể là discrete attribute, dữ liệu có range là tập hợp hữu hạn hạn (finite set), tập hợp vô hạn đếm được (countably infinte set).
Nominal attribute là tập hợp các giá trị để phân loại, ví dụ gender = { male, female }, hair_color = { brown, blond, red, gray, white }, marital status = { single, married, divorced, and widowed }. Mỗi giá trị (value) trong nominal attribute là định tính (qualitative). Tên gọi khác có thể là “category feature” trong Machine Learning, hay “enumeration” trong programming language.
Nomial attribute có range là finite set (như các ví dụ trên) hoặc countably infinite set như “customer_id” là primary key trong Customer table. “customer_id” thường có giá trị tăng dần từ 1 mỗi khi có 1 row mới được insert vào, nhưng “customer_id” chỉ đại diện cho 1 row trong table. Các phép toán cộng, trừ, nhân, chia trên “customer_id” không có ý nghĩa.
Ordinal attribute là nonimal attribute nhưng có ý nghĩa về sắp sếp (sort) hay xếp hạng (ranking) giữa các giá trị trong ordinal attribute. Ví dụ “drink_size” biểu diễn kích thước 1 ly nước có 3 giá trị { small, medium, large }. Tuy nhiên, ordinal attribute không có biết khoảng cách (distance) giữa các value là bao nhiêu. Khoảng cách giữa medium và small, giữa large và medium?
Cũng như nominal attribute, các phép toán cộng, trừ, nhân, chia trên ordinal attribute của nó không có ý nghĩa. Ordinal attribute có thể là finite set hoặc coutably infinite set.
Numeric Attribute chứa các giá trị định lượng (quantitative value), thường được biểu diễn bằng số nguyên hay số thực. Numeric value có thể cộng, trừ, nhân, chia. Vì vậy mà có thể tính các giá trị thống kê trung bình mean. Việc tính mean trên nonimal attribute là không có ý nghĩa. Vài ví dụ: “temperature” lưu trữ nhiệt độ từng ngày, “years_of_experiment” lưu trữ số năm kinh nghiệm làm việc của nhân viên.
Về khái niệm số của OP thì phải xem nó thuộc nominal hay numeric.
Giả sử, nếu số ở đây là “salary”, công đoạn chuyển sang string chỉ để hiển thị UI thì, thì con số đó áp dụng các phép toán cộng, trừ,… đều được. Con số đó thuộc dạng numeric.
Nếu nó chỉ là “product_id” trong Product table thì nó lại có dạng là nominal. Lúc chuyển sang string có thể dựa vào “id” lớn nhất để thêm số 0 vào đầu chữ số hoặc theo quy định “có chiều dài là 6 chữ số”
Lúc mình viết thấy có vẻ lạc đề, nhưng lỡ viết rồi nên ấn reply luôn.
Nếu thấy có ích thì không có gì.
Nếu thấy nó “lạc” thật thì làm ơn bơ qua comment của mình nha.
Làm 1 cái điều kiện if ở đó, nếu ký tự đầu tiên là 0 thì in ra số 0 cộng với chính giá trị đó còn không phải thì làm bình thường, nghĩ đơn giản thôi.
dùng string.Padlef.
link C# microsoft:https://msdn.microsoft.com/fr-fr/library/92h5dc07(v=vs.110).aspx
Nhập ID, đt hay gì ID không bao giờ là số, mà là chuỗi số. Số bình thường sao lại chèn 0 đầu?
Btw,
thế mình có lầm lẫn gi nhỉ.
sao đá nhau chan chát vậy. Tớ không rành trước đây người ta dùng gi đế tính. Muốn xem nó là số hay ko thì đặt nó vào ngữ cảnh thôi.
Đá nhau chỗ nào bạn, bạn chỉ ra hộ mình cái. Nếu bạn thiếu kiến thức cơ bản thì nên bổ sung lại. Thân. Số và chữ số là kiến thức ở tiểu học bạn có thể xem lại
Như bạn nói là tổ hợp đấy. vậy cái ID đó hẳn là số?
Tranh luận thì lo tranh luận, toàn lo công kích cá nhân không vậy?
Thế thì bạn lại nhầm cơ bản khi suy luận logic rồi. Mình nói số là 1 tổ hợp các chữ số không có nghĩa tổ hợp các chữ số là số vì sẽ có 1 số trường hợp tổ hợp các chữ số không tạo ra 1 số hợp lệ.
Câu phát biểu trên của mình cũng tương đương với nhận xét chó là 1 loài động vật nhưng không có nghĩa động vật là chó hay bất kì 1 nhận xét nào tương tự thế. Hiểu chưa bạn. Còn vì sao mình bảo bạn xem lại kiến thức toán cơ bản vì bạn đang hiểu lẫn lộn giữa 2 khái niệm chữ số và số. Nếu bạn xem đó là công kích cá nhân không cho ai đụng đến bạn thì mình cũng chịu, không biết nói gì hơn.
vậy OK, tớ không còn gì để nói với cậu