2012-01-12 45 views
6

Tôi có hai chuỗi biến và chuỗi chi tiết. Tôi đang cố gắng in ra hai chuỗi trong một dòng. Nó sẽ không hoạt động. Tôi đã thử rất nhiều cách khác nhau để làm điều này. Để loại trừ khả năng của một chuỗi uninitialized tôi đã cố gắng in chúng ra trong các dòng khác nhau ... công trình này.Hành vi lạ với các chuỗi java

Ví dụ này hoạt động ... ngoại trừ việc đầu ra cần phải nằm trong một dòng.

  System.out.println(ticker); 
      System.out.println(detail); 

Và kết quả là:

IWM 
|0#0.0|0#0.0|0#-4252#386| 
GLD 
|0#0.0|0#0.0|0#-4704#818| 

Khi tôi cố gắng đưa đầu ra vào một dòng trong bất kỳ nhiều cách, tôi nhận được chỉ là ticker ... chuỗi chi tiết được chỉ không in ... không phải để điều khiển hoặc để tập tin. Dưới đây là một số đoạn mã ví dụ sản xuất cùng một kết quả:

Cố gắng 1:

System.out.println(ticker.concat(detail)); 

Cố gắng 2:

System.out.println(ticker+detail); 

Nỗ lực 3:

StringBuffer sb = new StringBuffer(); 
sb.append(ticker); 
sb.append(detail); 
System.out.print(sb.toString()); 

Nỗ lực 4:

System.out.print(ticker); 
System.out.println(detail); 

Trong tất cả những nỗ lực trên, tôi nhận được đầu ra sau ... như thể một phần chi tiết bị bỏ qua:

GOLD 
BBL 
SI 

Điều gì có thể gây ra những triệu chứng này? Có cách nào để có được hai chuỗi được in trong một dòng không?

+1

Tôi không thấy đầu ra đầu tiên và đầu ra cuối cùng có liên quan như thế nào. Chúng không chứa cùng một thứ gì cả. Có thể bạn không in những gì bạn nghĩ mình đang in. Hãy thử tạo một SSCCE (http://sscce.org/). –

+0

có, điều này được chạy trong thời gian thực, do đó, các kết quả đầu ra hơi khác nhau, nhưng định dạng là một số mã được lưu trữ trong ticker ... một số chi tiết được lưu trữ trong biến chi tiết. – fodon

+1

Bạn có thể cho chúng tôi biết nội dung thực tế của chuỗi 'ticker' và' detail' không? Bạn có thể gỡ lỗi mã và nhận văn bản ở đó ... – everton

Trả lời

7

Điều này có thể phù hợp hơn như một bình luận, nhưng sau đó tôi không thể viết đoạn mã tôi cần viết.

Các chuỗi đến từ đâu? Có phải chúng từ một tệp có thể chứa một số ký tự điều khiển lẻ không? Nếu bạn không tự tạo String, bạn nên kiểm tra chúng để tìm kiếm trả về vận chuyển thẳng đứng được nhúng hoặc sự kỳ quặc khác. Làm một cái gì đó như thế này cho cả detailticker Strings:

for (int i=0; i<detail.length(); ++i) 
    System.out.println((int) detail.charAt(i)); 

và xem nếu bạn nhận được bất cứ điều gì trong phạm vi phi ASCII.

+1

đó là một ý tưởng thú vị ... Tôi sẽ chạy thử nghiệm. – fodon

+1

có một loạt các 0 ... Tôi đoán hệ thống không xóa số 0 và giả định rằng chấm dứt chuỗi. Tôi sẽ làm việc trên ý tưởng đó. Có một thói quen thư viện chuẩn để loại bỏ các dấu 0 không? – fodon

+0

ASCII NUL chắc chắn được tính là sự kỳ quặc! Nếu bạn có thể loại bỏ chúng trước khi tạo các đối tượng Chuỗi Java, tôi đặt cược vấn đề của bạn sẽ biến mất. –

2

Có thể là chuỗi đầu tiên kết thúc bằng một "\ n", các dòng mới (thức ăn đường) nhân vật ('\ u000A')

+0

Đó là dự đoán của tôi, đó là lý do tại sao tôi hỏi anh ta nội dung thực sự của các chuỗi ... – everton