Java 第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心
如果给定字符串为“万维网” 在每个单词中,找出第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心 世界=[W-D]+[O-L]+[R]=[23-4]+[15-12]+[18]=[19]+[3]+[18]=[40] 宽=[W-E]+[I-D]=[23-5]+[9-4]=[18]+[5]=[23] 网络=[W-B]+[E]=[23-2]+[5]=[21]+[5]=[26] 将每个单词的和连接起来形成结果 [40][23][26] [402326]Java 第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心,java,string,Java,String,如果给定字符串为“万维网” 在每个单词中,找出第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心 世界=[W-D]+[O-L]+[R]=[23-4]+[15-12]+[18]=[19]+[3]+[18]=[40] 宽=[W-E]+[I-D]=[23-5]+[9-4]=[18]+[5]=[23] 网络=[W-B]+[E]=[23-2]+[5]=[21]+[5]=[26] 将每个单词的和连接起来形成结果 [40][23][26] [402326] class
class Strcode{
public static void main(String args[]){
int xd[]=new int[100];
int n[]=new int[100];
int position=0;
String input = "hello".toLowerCase(); //note the to lower case in order to treat a and A the same way
for( int i = 0; i < input.length(); ++i) {
position = input.charAt(i) - 'a' + 1;
System.out.println(position);
for( int k=0,j=position.length()-1;k<j;k++,j--){
xd[k]=Math.abs(xd[k]-xd[j]);
System.out.println(xd[k]);
}
}
}
}
类Strcode{
公共静态void main(字符串参数[]){
int xd[]=新int[100];
int n[]=新int[100];
int位置=0;
String input=“hello”.toLowerCase();//注意小写,以便以相同的方式处理a和a
对于(int i=0;i 对于(int k=0,j=position.length()-1;k这是初学者的基本问题之一。让我来为您解答。您需要执行以下步骤:
从给定字符串中提取每个单词。(自行完成!)
计算每个单词的总和。(找到下面的代码!)
连接这些总和。(简单!)
公共类示例{
公共静态void main(字符串参数[]){
//在这里执行您的代码部分
String sampleWord=“hello”;
int individualWordSum=countSum(sampleWord);
}
公共静态int countSum(字符串字){
字符串输入=word.toLowerCase();
整数和=0;
对于(int i=0;i
下面是您需要的完整代码,但首先请自己尝试
public class sample{
public static void main(String args[]){
String sentence = "WORLD WIDE WEB";
String words[] = sentence.split(" ");
String result = "";
for(String word : words){
result += String.valueOf(countSum(word));
}
System.out.println("Sum for " + sentence + " is " + result);
}
public static int countSum(String word){
String input = word.toLowerCase();
int sum = 0;
for( int i = 0; i < input.length()/2; i++) {
int s = (input.charAt(i) - 'a') - (input.charAt(input.length() - 1 - i) - 'a');
sum += Math.abs(s);
}
if(input.length()%2!=0){
sum += input.charAt(input.length()/2) - 'a' + 1;
}
return sum;
}
}
公共类示例{
公共静态void main(字符串参数[]){
String语句=“万维网”;
字符串单词[]=句子。拆分(“”);
字符串结果=”;
for(字符串字:字){
结果+=字符串.valueOf(countSum(word));
}
System.out.println(“句子+的和等于结果”);
}
公共静态int countSum(字符串字){
字符串输入=word.toLowerCase();
整数和=0;
对于(int i=0;i
如果不实现所描述的逻辑,而是对其进行分析并获得更简单的解决方案,则可以使其变得更简单
您可以将单词的前半部分(如果单词长度为奇数,则包括中间的字母)相加,然后减去后半部分,而不是将第一个字母和最后一个字母之间的差值相加,依此类推
String sentance = "WORLD";
int middle = Math.ceil(sentance.length() / 2);
int sum = 0;
for (int i = 0; i < sentance.length(); i++)
{
if (i <= middle)
{
sum += sentance[i] - 'A' + 1;
}
else
{
sum -= sentance[i] - 'A' + 1;
}
}
System.out.println("Sum: " + sum);
String sentance=“WORLD”;
int middle=Math.ceil(sentance.length()/2);
整数和=0;
for(int i=0;i 如果(我是什么意思,你不能减法?这是我认为最简单的部分,对于这个代码段,递归函数将非常有用…你应该考虑给你的变量起一个有意义的名字。只使用i,k,xs会让其他人很难理解。你想用position.length()实现什么1 < <代码> > <代码>位置>代码> <代码> int >代码>考虑先创建一些伪代码,然后尝试将其转换成真正的代码。
。通过将完整输入证明为->(hello world),它返回的输出为-->hello的总和为26,world的总和为40,但预期的输出是将它们连接起来,并输出为2640。这是第1点和第3点,您需要实现。尝试一下。如果您仍然面临问题,我也会指导您。是的,我做到了。我几乎可以自己完成这项工作,非常感谢您的支持右。@jackjay
String sentance = "WORLD";
int middle = Math.ceil(sentance.length() / 2);
int sum = 0;
for (int i = 0; i < sentance.length(); i++)
{
if (i <= middle)
{
sum += sentance[i] - 'A' + 1;
}
else
{
sum -= sentance[i] - 'A' + 1;
}
}
System.out.println("Sum: " + sum);