Java - 如何将字符串转换为具有相应数值的数组?

时间:2014-09-17 02:31:49

标签: java arrays string

如何轻松地将以下字符串转换为具有相应数值的整数数组(即a = 0,b = 1,c = 2等):

String plaintext = "sallywenttotheseashoretocollectseashellsxx";

6 个答案:

答案 0 :(得分:2)

嗯,你提出的问题定义不明确,但是你可以做些什么:

char[] chars = text.toCharArray();
int[] results = new int[text.length()];

for(int i = 0; i < text.length(); i++) { 
    //your poorly defined conversion
    results[i] = someOperation(chars[i])
}
.
.
// a best guess at what this function would do
private static int someOperation(char c) { 
   return (c - 'a');
}

如果字母a映射为0,则字母A会映射到什么位置?

答案 1 :(得分:1)

以下代码仅适用于小写:

int[] string_to_numbers = new int[s.length()];

for(int i=0; i<s.length(); i++){
    string_to_numbers[i] = s.charAt(i)-'a';
}

答案 2 :(得分:1)

我们可以从你给出'a'= 0的身份开始,这意味着我们可以从任何给定的角色中减去'a'。就像这样,

String plaintext = "sallywenttotheseashoretocollectseashellsxx";
char[] letterArray = plaintext.toCharArray();
int[] array = new int[letterArray.length];
for (int i = 0; i < letterArray.length; i++) {
    array[i] = letterArray[i] - 'a';
}
System.out.println(Arrays.toString(array));

输出(为此帖格式化)

[18, 0, 11, 11, 24, 22, 4, 13, 19, 19, 14, 19, 7, 4, 18, 4, 0, 18, 7, 14, 17, 4,
 19, 14, 2, 14, 11, 11, 4, 2, 19, 18, 4, 0, 18, 7, 4, 11, 11, 18, 23, 23]

答案 3 :(得分:0)

您可以从字符本身中扣除字符'a',以便为'a'提供0,为'b'提供1等。

int[] digits = new int[plaintext.length()];

for(int i = 0; i < digits.length; i++) {
    digits[i] = plaintext.charAt(i) - 'a';
}

注意:这只适用于小写字母

答案 4 :(得分:0)

String plaintext = "sallywenttotheseashoretocollectseashellsxx";
        int arr[] = new int[plaintext.length()];
        for(int i=0;i<plaintext.length();i++){
            arr[i]= plaintext.charAt(i)-96;
        }

您可以将文本转换为小写,以防它也可能包含大写字母

答案 5 :(得分:0)

只有-aASCII a(97)的值。你可以试试这个

public class ASCII {
    public static void main(String[] args) {
        String plaintext = "sallywenttotheseashoretocollectseashellsxx";
        int a_code[]; 
        a_code = new int[plaintext.length()];

        for(int i = 0; i < plaintext.length(); i++){
            a_code[i] = plaintext.charAt(i) - 'a'; //plaintext.charAt(i) - 97;
        }

        for(int i = 0; i < plaintext.length(); i++){
            System.out.println(a_code[i]);
        }
    }
}