2012-10-02 41 views
5

Xin chào, tôi là người mới lập trình và tôi cần trợ giúp tìm ra điều gì sai với mã của tôi.Cần trợ giúp- Báo cáo chuyển đổi

Về cơ bản tôi cần phải có một chữ cái AZ và chuyển nó thành Leek (một tổ hợp ký hiệu, #, ký tự trông giống như các ký tự AZ. Tôi chỉ cho phép sử dụng các câu lệnh chuyển đổi (chuyển đổi, trường hợp, ngắt) Tôi phải sử dụng phương thức .next(). CharAt (0)

Tôi đã nghiên cứu trong nhiều ngày và vẫn không có may mắn về việc tìm ra điều gì sai. Khi tôi cố gắng biên dịch chương trình, nó xuất hiện nhiều lỗi tất cả đọc "không thể tìm thấy biểu tượng" chỉ vào ký tự az tôi được sử dụng trong các trường hợp tuyên bố. Ai đó có thể loại và chỉ ra những gì tôi đang làm sai?

import java.util.Scanner; 

public class dlin_Leet 
{ 
    public static void main(String args[]) 
    { 
     Scanner input = new Scanner(System.in); 

     char character;//input by user 
     String Leet; 

     System.out.print("Enter character to convert:"); 
     String Leet = input.next(); 
     char character = Leet.charAt(0); 

     switch (character) 
     { 
      case a: Leet = "4"; 
       break; 
      case b: Leet = "I3"; 
       break; 
      case c: Leet = "["; 
       break; 
      case d: Leet = ")"; 
       break; 
      case e: Leet = "3"; 
       break; 
      case f: Leet = "|="; 
       break; 
      case g: Leet = "&"; 
       break; 
      case h: Leet = "#"; 
       break; 
      case i: Leet = "1"; 
       break; 
      case j: Leet = "J"; 
       break; 
      case k: Leet = "|<"; 
       break; 
      case l: Leet = "1"; 

      } 
     System.out.println(Leet); 
    } 
} 

Trả lời

1

trường hợp tuyên bố sử dụng char (có nghĩa là nháy đơn), nó phải là một cái gì đó giống như

switch (character) 
      { 
       case 'a': Leet = "4"; 
        break; 
       case 'b': Leet = "I3"; 
        break; 
      ......... 
      } 
5

Các characte hằng số r phải vào apostraphs:

case 'a': thay vì case a:

Fix mã của bạn và tôi hy vọng đây là lỗi cú pháp duy nhất mà bạn có.

+0

Xin chào, TYVM! đó là một sửa chữa dễ dàng – user1714873

+1

@ user1714873: nếu nó giải quyết được vấn đề của bạn đừng quên chấp nhận câu trả lời. – Jimmy

0

trường hợp của bạn phải là một char như trường hợp 'a'

switch(character) 

{ 
    case 'a': 
     //do your stuff 
    } 

và bạn cũng được tuyên bố leet (Biến chuỗi hai lần). chỉ cần khai báo nó trở thành một và sử dụng biến tương tự khi bạn có được đầu vào từ máy quét

+0

@hayden đã chỉnh sửa câu trả lời của tôi .. :) – PermGenError

3

Cũng - Bạn đang tuyên bố biến "Leet" và "nhân vật" hai lần trong cùng một khối (Duplicate biến cục bộ)

0

Sử dụng dây trong trường hợp chuyển đổi chỉ có thể được sử dụng nếu bạn sử dụng JDK7 và thậm chí sau đó bạn sẽ phải có các giá trị trong dấu ngoặc kép. Giống như

case "a": 
+2

Anh ấy đang chuyển đổi ký tự .. Nó phải là 'a'. Điều đó cũng hoàn toàn hợp lệ trong Java 6. –

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