2014-05-25 11 views
8

Tôi đang cố gắng để chuyển đổi một biến String vào một số nguyên, chỉ String trông như thế này (ví dụ):Chuyển đổi một chuỗi với không gian đến một Integer trong java

String string = " 12"; 

Và như vậy String có một không gian trước mặt nó. Bây giờ biến String đang được đọc từ một tệp .txt, đó là lý do tại sao tôi có vấn đề có khoảng trống ở phía trước nó. Tôi cần chuyển đổi biến thành một int, nhưng khi tôi thử:

int integer = Integer.parseInt(string); 

để chuyển chuỗi vào một số nguyên, nó biên dịch nhưng tôi gặp lỗi khi cố chạy chương trình vì có khoảng trắng là một phần của chuỗi.

Có cách nào để chuyển một chuỗi số có khoảng trắng phía trước nó vào một int không? .trim có hoạt động không? Và nếu có, tôi sẽ sử dụng nó như thế nào? (Tôi không quen lắm với .trim, tôi vẫn đang học !!) Tôi đánh giá cao sự giúp đỡ!^_^

+3

Tôi hiểu bạn đang học, nhưng nếu bạn có thể mã và chạy mã này tại sao bạn không thể kiểm tra xem .trim() có hoạt động không? –

+0

Nếu các giá trị đang được đọc từ một tệp, bạn thực sự nên sử dụng phương thức 'nextInt()' của 'Scanner'. – Jared

Trả lời

11

.trim có hoạt động không? Và nếu có, tôi sẽ sử dụng nó như thế nào?

Vâng, trim() sẽ làm việc, nó sẽ loại bỏ khoảng trống ở đầu và đuôi từ String,

int integer = Integer.parseInt(string.trim()); 
5

Sử dụng chuỗi chức năng cắt trong Java đầu tiên có được một chuỗi mà không có không gian, sau đó phân tích nó .. .

1.) Di chuyển không gian với đường viền ... String#trim

String stringWithoutSpace = string.trim(); 

2.) Phân tích các chuỗi không có khoảng ... Integer#parseInt

int integer = Integer.parseInt(stringWithoutSpace); 

3.) làm tất cả mọi thứ trên trong một bước ...

int integer = Integer.parseInt(string.trim()); 
5

Chuỗi split() phương thức hoạt động tốt nếu bạn có một chuỗi gồm nhiều số được phân tách bằng dấu cách.

String numbers = "1 23 456"; 
String[] numbersArray = numbers.split(" "); // splitting string by spaces 
System.out.println(numbersArray.toString()); 
// output ["1","23","456"] 

Sau đó, bạn có thể sử dụng Integer.parseInt() trên mỗi chỉ mục của mảng. Hy vọng rằng sẽ giúp

0

Để chắc chắn rằng mã của bạn không ném NumberFormatException hoặc thậm chí NullPointerException, khi bạn nhận được số từ người sử dụng, sử dụng các lớp học phổ biến apache:

import org.apache.commons.lang3.StringUtils; 
import org.apache.commons.lang3.math.NumberUtils; 
..... 
// '1' is the default value which is returned when the string can not be converted to int 
// The StringUtils.trimToEmpty do both left and right trim 
int number = NumberUtils.toInt(StringUtils.trimToEmpty(" 12 ",1)) = 12; 
Các vấn đề liên quan