在android/java中,我们如何将单词拆分为字符。。??并为每个字符指定特定的id
我想把这个词分成像ABCD这样的字符,然后再分成A.B.C.D.和A.B.C.D 如果我们假设A=1,B=2,。。。。。。Z=26,然后我想把这个序列分配给每个字符,并把它们相加,得到输出。在android/java中,我们如何将单词拆分为字符。。??并为每个字符指定特定的id,java,android,Java,Android,我想把这个词分成像ABCD这样的字符,然后再分成A.B.C.D.和A.B.C.D 如果我们假设A=1,B=2,。。。。。。Z=26,然后我想把这个序列分配给每个字符,并把它们相加,得到输出。 如何做到这一点…?我假设您已经维护了一个映射图,用于将字符映射到一些数字。然后,您可以简单地在空字符串上拆分字符串以获得单个字符。然后在数组上迭代以获得和 请注意,对空字符串进行拆分将得到一个空字符串作为数组中的第一个元素。因为,Java中的字符串在字符串的开头包含一个空字符串 因此,您可以尝试以下代码:-
如何做到这一点…?我假设您已经维护了一个映射图,用于将字符映射到一些数字。然后,您可以简单地在空字符串上拆分字符串以获得单个字符。然后在数组上迭代以获得和 请注意,对空字符串进行拆分将得到一个空字符串作为数组中的第一个元素。因为,Java中的字符串在字符串的开头包含一个空字符串 因此,您可以尝试以下代码:-
String str = "ABCDEF";
String[] arr = str.split("");
int sum = 0;
Map<String, Integer> map = new HashMap<String, Integer>() {
{
put("A", 1); put("B", 2); put("C", 3);
put("D", 4); put("E", 5); put("F", 6);
}
};
System.out.println(Arrays.toString(arr));
// Iteration starts from index 1, as 1st element is an empty string
for (int i = 1; i < arr.length; i++) {
sum += map.get(arr[i]);
}
System.out.println("Sum = " + sum);
或者,您也可以使用方法将字符串直接转换为具有单个字符的字符数组。在这种情况下,您的map声明应该是:-map
由于“A”的ASCII码是65,这将为A加上+1,为B加上+2,依此类推
您必须处理大写和小写,例如,对于小写减法96。请尝试以下代码:
String data = "ABCD";
int sum=0;
String dataToProcess = data.toLowerCase();
for(int i=0;i<dataToProcess.length();i++){
char c = dataToProcess.charAt(i);
sum += c - 96;
}
System.out.println("sum is "+sum);
请帮帮我。。!!!提前谢谢……你试过什么了?如果你的最终目标是为每个字符分配数字并求和,那么你为什么要拆分和合并它们呢?我想这个问题与字符串操作有关,而不是java/android特定的。是的,这正是我想要的。为每个字符分配数字并求和
String str = "ABCDEF";
Map<Character, Integer> map = new HashMap<Character, Integer>() {
{
put('A', 1); put('B', 2); put('C', 3);
put('D', 4); put('E', 5); put('F', 6);
}
};
for (char ch: str.toCharArray()) {
sum += map.get(ch);
}
int sum = 0;
for (char ch: theWordToCount.toCharArray()) {
sum += ((int)ch) - 64;
}
String data = "ABCD";
int sum=0;
String dataToProcess = data.toLowerCase();
for(int i=0;i<dataToProcess.length();i++){
char c = dataToProcess.charAt(i);
sum += c - 96;
}
System.out.println("sum is "+sum);