2015-01-19 2 views
0

Это мой простой код, который преобразует символы в числа (потому что тогда мне придется делать сортировку пузырьков.) Я хочу вернуть целое число, которое является комбинацией Ascii моих символов. Например, если у меня есть строка, как «B78» мой метод «ASCII» должен сделать что-то вроде этого:Возвращение нескольких чисел в одно целое

'b' = 98, '7' = 55, '8'= 56

Но я хочу, чтобы вернуть его в качестве одного целого: 985556. Я хотел бы вернуть только целое число, не массив, int []. Что я должен сделать, чтобы добиться этого?

public class Example{ 
    public static int ascii(String s){ 
     for(int i=0 ; i < s.length() ; i++){ 
      char c = s.charAt(i); 
      int j= (int)c; 
     } 
     // I don,t know what I have to return 
    } 
    public static void main(String[] args){ 
     String[] str = {"b78","c&3","a00","a01","zz9"}; 
     String q = str[0]; 

     int c = ascii(q); 
     System.out.print(c); 
    } 
} 
+1

Возможно, вам не проще вернуть список или другую структуру данных? –

+0

Преобразуйте каждое число в 'String' и объедините их все вместе. Затем, когда вы закончите, проанализируйте эту строку обратно в 'int' и верните ее. – azurefrog

+1

* Зачем ты хочешь это сделать? По крайней мере * возвращаем массив! – chrylis

ответ

0

На примере вы дали, я думаю, что вы хотели что-то вроде

public static int ascii(String s) { 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < s.length(); i++) { 
     char c = s.charAt(i); 
     sb.append(Integer.toString(c)); 
    } 
    return Integer.parseInt(sb.toString()); 
} 

public static void main(String[] args) { 
    String[] str = { "b78", "c&3", "a00", "a01", "zz9" }; 
    for (String q : str) { 
     int c = ascii(q); 
     System.out.printf("%s %d%n", q, c); 
    } 
} 

Выход

b78 985556 
c&3 993851 
a00 974848 
a01 974849 
zz9 12212257 
+0

Большое вам спасибо: D – Francesco

+0

@ Francesco Вы хотите, чтобы 'az9' приходил после' za9'? –

+0

@DavidWallace Я просто хочу переупорядочить массив строк, в порядке descendig, не имеет значения, метод. Я полагал, что преобразование строки в числа было хорошей идеей, поэтому Я спросил это. – Francesco

0

Я не понимаю, почему вы попробуете это, но я думаю, что вы может использовать + оператор конкатенации строк. преобразовать каждый символ в его ASCII и преобразовать это целое число в строку с использованием Integer.toString(). затем объединить их с оператором + и снова преобразовать результат с помощью метода Integer.parseInt (String str). Думаю, тогда вы можете получить результат, который вы хотите.

Смежные вопросы