2012-06-14 58 views
6

Tôi không muốn làm điều đó một cách chính thức bằng cách sử dụng một vòng lặp for mà đi qua tất cả các yếu tố của chuỗi một "số lần cụ thể" (chiều dài chuỗi).Làm thế nào để kiểm tra xem tôi đã đạt đến cuối chuỗi trong Java chưa?

Có ký tự nào luôn ở cuối mỗi chuỗi trong Java giống như trong c?

+0

Có gì trong C? – adarshr

+0

Sự kết thúc của một dòng trong một tập tin hoặc kết thúc của một chuỗi? – ChadNC

+0

Bạn có nghĩa là kết thúc của dòng? Giống như nếu bạn có nhiều dòng trong cùng một chuỗi? –

Trả lời

6

Bạn có hai lựa chọn cơ bản:

String myString = "ABCD"; 
for (char c : myString.toCharArray()) 
{ 
    System.out.println("Characer is " + c); 
} 

for (int i = 0; i < myString.length(); i++) 
{ 
    System.out.println("Character is " + myString.charAt(i)); 
} 

Các vòng đầu tiên thông qua một mảng ký tự, các vòng thứ hai sử dụng một vòng lặp được lập chỉ mục bình thường.

Tuy nhiên, Java hỗ trợ các ký tự như '\ n' (dòng mới). Nếu bạn muốn kiểm tra sự hiện diện của ký tự này, bạn có thể sử dụng phương thức indexOf ('\ n') sẽ trả về vị trí của ký tự, hoặc -1 nếu nó không thể tìm thấy. Được cảnh báo rằng các ký tự '\ n' không cần thiết để có thể kết thúc một chuỗi, vì vậy bạn không thể dựa vào điều đó một mình.

Các chuỗi trong Java KHÔNG có trình kết thúc NULL như trong C, vì vậy bạn cần sử dụng phương thức length() để tìm ra chuỗi dài bao nhiêu.

+0

* bạn cần phải sử dụng chiều dài() phương pháp để tìm ra bao lâu một chuỗi. * - [Không bạn không] (http://stackoverflow.com/questions/2910336/string-length-without-using-length-method-in-java). – aioobe

+3

Tôi biết bạn có các tùy chọn khác để tìm độ dài của chuỗi, giống như bạn không CẦN trình biên dịch Java, bạn chỉ có thể viết bytecode bằng tay, nhưng sử dụng Str.length() rất đơn giản và dễ dàng và thực sự, là một coder mới bắt đầu, tại sao lại nhầm lẫn anh ta hay cô ấy? – Ewald

0
String[] splitUpByLines = multiLineString.split("\r\n"); 

Sẽ trả về một mảng String s, mỗi dòng đại diện cho một dòng của chuỗi nhiều dòng của bạn.

+1

Đừng nghĩ rằng đây là những gì OP muốn. Ông có thể mong đợi NUL chấm dứt chuỗi như trong C. – nhahtdh

3

Có ký tự nào luôn nằm trong chuỗi của mọi chuỗi trong java giống như trong c?

Không, đó không phải là cách chuỗi Java hoạt động.

tôi không muốn làm điều đó một cách chính thức bằng cách sử dụng vòng lặp for mà đi khắp nơi trên các yếu tố của chuỗi một "đặc biệt không. Lần" (chiều dài của chuỗi).

Các lựa chọn duy nhất thì có lẽ là để nối thêm một nhân vật đặc biệt của riêng bạn:

yourString += '\0'; 

(nhưng hãy cẩn thận rằng yourString có thể chứa \0 ở giữa cũng ;-)

Nếu bạn đang lặp qua các ký tự trong chuỗi, bạn cũng có thể làm

for (char c : yourString.toCharArray()) 
    process(c); 
0

System.getProperty("line.separator"); Điều này sẽ cho bạn biết tính năng dòng mới độc lập của OS. Bạn có thể kiểm tra các ký tự của chuỗi của mình dựa vào ký tự new line này.

Các vấn đề liên quan