如何轻松地将以下字符串转换为具有相应数值的整数数组(即a = 0,b = 1,c = 2等):
String plaintext = "sallywenttotheseashoretocollectseashellsxx";
答案 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)
只有-a
或ASCII
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]);
}
}
}