一、题目链接
http://noi.openjudge.cn/ch0107/05/
二、解题思路
◎ 循环遍历给定字符串的第一个字符至倒数第二个字符:
→ 将当前字符的Unicode值与其后一个字符的Unicode值相加,得到当前字符的亲朋字符;
◎ 将最后一个字符的Unicode值与第一个字符的Unicode值相加,得到最后一个字符的亲朋字符;
◎ java.lang.String.valueOf(char[] data)方法:返回字符数组data的字符串形式。
三、实施步骤
◆ 方法public String relative(String text)处理所有业务逻辑:
→ 参数text为String类型的对象,代表给定字符串;
→ 方法relative返回String类型的对象,代表text的亲朋字符串。
◇ 方法relative实施步骤如下:
◎ 首先,定义int类型的整数n,代表text及其亲朋字符串的长度,初始时n=text.length();
◎ 其次,定义char[] chars=text.toCharArray(),将text的内容转存进chars数组;
◎ 然后,定义char[] ans=new char[n],存储text的亲朋字符串;
◎ 第四,通过标记i代表每个字符的位置,i从0开始,到n-2为止,更新步长为1,循环处理如下:
→ 令ans[i]=(char)(chars[i]+chars[i+1]);
◎ 第五,令ans[n-1]=(char)(chars[n-1]+chars[0]);
◎ 最后,返回String.valueOf(ans)。
◇ 在方法main中输入给定字符串,将其作为参数注入方法relative,输出计算结果。
四、Java程序
import java.util.Scanner;
public class Main {
public String relative(String text) {
int n = text.length();
char[] chars = text.toCharArray();
char[] ans = new char[n];
for (int i = 0; i < n - 1; i++) {
ans[i] = (char) (chars[i] + chars[i + 1]);
}
ans[n - 1] = (char) (chars[n - 1] + chars[0]);
return String.valueOf(ans);
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String text = input.nextLine();
System.out.print(test.relative(text));
}
}