2012-01-16 86 views
11

Cách lấy vị trí số của bảng chữ cái trong java?Làm thế nào để có được vị trí số của bảng chữ cái trong java?

Giả sử thông qua dấu nhắc lệnh tôi đã nhập abc sau đó làm đầu ra tôi cần lấy 123 cách tôi có thể lấy vị trí số của bảng chữ cái trong java?

Xin cảm ơn trước.

+2

Ký tự Java được lưu thành số. Đọc về các số ASCII, bạn có thể làm toán trên các ký tự. – Reddy

+0

Bởi "vị trí số của bảng chữ cái", u có phải là vị trí của một bảng chữ cái trong từ không? –

+0

Tôi nghĩ anh ấy có nghĩa là vị trí của một nhân vật trong bảng chữ cái tiếng Anh. a = 1, b = 2, c = 3 etc – Jivings

Trả lời

28
String str = "abcdef"; 
char[] ch = str.toCharArray(); 
for(char c : ch) 
{ 
int temp = (int)c; 
int temp_integer = 96; //for lower case 
if(temp<=122 & temp>=97) 
System.out.print(temp-temp_integer); 
} 

đầu ra:

@Shiki cho Capital/chữ hoa sử dụng đoạn mã sau:

String str = "DEFGHI"; 
    char[] ch = str.toCharArray(); 
    for(char c : ch) 
    { 
     int temp = (int)c; 
     int temp_integer = 64; //for upper case 
if(temp<=90 & temp>=65) 
    System.out.print(temp-temp_integer); 
    } 

Output: 456789

11

Chuyển đổi từng ký tự thành mã ASCII của nó, trừ mã ASCII cho "a" và thêm 1. Tôi cố tình để lại mã dưới dạng bài tập.

Điều này nghe giống như bài tập về nhà. Nếu có, vui lòng gắn thẻ như vậy.

Ngoài ra, điều này sẽ không xử lý các chữ cái viết hoa, vì bạn không yêu cầu bất kỳ yêu cầu nào để xử lý chúng, nhưng nếu bạn cần sau đó chỉ cần viết chuỗi trước khi bắt đầu.

Oh, và điều này sẽ chỉ đối phó với các từ tiếng Latin "một" thông qua nhân vật "z" không có bất kỳ dấu vv

0

này phụ thuộc vào bảng chữ cái nhưng đối với một tiếng anh, hãy thử này:

String input = "abc".toLowerCase(); //note the to lower case in order to treat a and A the same way 
for(int i = 0; i < input.length(); ++i) { 
    int position = input.charAt(i) - 'a' + 1; 
} 
2
char letter; 
for(int i=0; i<text.length(); i++) 
{ 
    letter = text.charAt(i); 
    if(letter>='A' && letter<='Z') 
     System.out.println((int)letter - 'A'+1); 
    if(letter>='a' && letter<= 'z') 
     System.out.println((int)letter - 'a'+1); 
} 
0

chỉ logic Tôi có thể đề xuất sử dụng hai mảng.

một là mảng Char

và một là mảng int.

chuyển đổi chuỗi đầu vào ur thành mảng char, lấy vị trí của char từ mảng char và int.

không mong đợi mã nguồn ở đây

0
String word = "blah blah"; 

for(int i =0;i<word.length;++i) 
{ 

if(Character.isLowerCase(word.charAt(i)){ 
System.out.print((int)word.charAt(i) - (int)'a'+1); 
} 
else{ 
System.out.print((int)word.charAt(i)-(int)'A' +1); 
} 
} 
1

Trước tiên, bạn cần phải viết một vòng lặp để lặp qua các ký tự trong chuỗi. Hãy xem lớp String có phương pháp để cung cấp cho bạn length và để tìm số charAt tại mỗi chỉ mục.

Đối với mỗi ký tự, bạn cần phải tìm ra vị trí số của nó. Hãy xem this question để xem cách thực hiện điều này.

10

Một cách khác để giải quyết vấn đề này ngoài việc sử dụng chuyển đổi ASCII như sau:

String input="abc".toLowerCase(); 
final static String alphabet="abcdefghijklmnopqrstuvwxyz"; 
for(int i=0;i<input.length();i++){ 
    System.out.print(alphabet.indexOf(input.charAt(i))+1; 
} 
Các vấn đề liên quan