2013-06-27 19 views
16

Got lỗi "không khép kín Character Literal", sử dụng BlueJ, khi viết:nhân vật không khép kín Literal lỗi

class abc 
{ 
    public static void main(String args[]) 
    { 
     String y; 
     y = 'hello'; 
     System.out.println(y); 
    } 
} 

Nhưng tôi không thể tìm ra những gì là sai. Bất kỳ ý tưởng nào?

Cảm ơn.

+1

Strings trong Java cần phải được kèm theo trong dấu ngoặc kép. Sử dụng '" hello "'. –

+0

[docs.oracle.com/javase/tutorial/java/data/strings.html](http://docs.oracle.com/javase/tutorial/java/data/strings.html) – jlordo

+0

Ok, tôi cũng vậy nhiều câu trả lời về sửa câu trả lời, nhưng tại sao 'String's in" "và' char' in ''? –

Trả lời

30

Trong Java, dấu nháy đơn chỉ có thể đưa một nhân vật, với thoát nếu cần thiết. Bạn cần phải sử dụng dấu ngoặc kép đầy đủ như sau cho các chuỗi:

y = "hello"; 

Bạn cũng sử dụng

System.out.println(g); 

mà tôi giả nên

System.out.println(y); 

Lưu ý: Khi thực hiện char giá trị (bạn có thể sẽ sử dụng chúng sau này) bạn cần dấu ngoặc đơn. Ví dụ:

char foo='m'; 
0

'' bao quanh một đơn char, trong khi "" bao quanh String.

Thay đổi

y = 'hello'; 

->

y = "hello"; 
6

Java sử dụng dấu ngoặc kép cho "String" và dấu nháy đơn cho 'C' haracters.

1

Chuỗi y = "hello";

sẽ hoạt động (lưu ý các dấu ngoặc kép).

char y = 'h'; điều này sẽ hoạt động đối với các ký tự (lưu ý các dấu nháy đơn)

nhưng loại là khóa: '' (dấu nháy đơn) cho một char, "" (dấu ngoặc kép) cho chuỗi.

2

Tôi muốn đưa ra một bổ sung nhỏ cho các câu trả lời hiện có. Bạn nhận được cùng một "Lỗi ký tự không rõ ràng", nếu bạn đưa ra giá trị cho một char có dạng unicode không chính xác. Giống như khi bạn viết:

char HI = '\3072'; 

Bạn phải sử dụng đúng mẫu đó là:

char HI = '\u3072';