一、问题描述
功能描述:将字符串中的字母全部替换成字母的下一个字母,要是最后一位是z或Z则替换为a或A。
输入:aBxyZ
输出:bCyzA
要求实现方法:
public String nextString(String data)
{
//TODO
return "";
}
二、算法分析
第一个问题: 如何把字符串转化为字符数组,然后单独下一个字符。
1 .遍历数组,char换成int 让后让int 加1 再转为 char。
第二个问题: 对于最后一位应该如何判断。
2、遍历过程中如果是length - 1 那么就是做特殊判断。
三、算法:
public String nextString(String data) { char[] arr = data.toCharArray(); for (int i = 0; i < arr.length; i++) { if(arr[i]== 'z' && i == arr.length - 1) { arr[i] = 'a'; }else if (arr[i]== 'Z' && i == arr.length -1) { arr[i] = 'A'; } else { arr[i] = (char)(arr[i] + 1); } } return String.valueOf(arr); }
四:测试
运行结果:
package com.albertshao.csi.interview; /** * @author albertshao * */ public class Main10 { public static void main(String[] args) { Main10 m = new Main10(); System.out.println(m.nextString("aBxyZ")); } /** * Gets the string made by the next character of input string. */ public String nextString(String data) { char[] arr = data.toCharArray(); for (int i = 0; i < arr.length; i++) { if(arr[i]== 'z' && i == arr.length - 1) { arr[i] = 'a'; }else if (arr[i]== 'Z' && i == arr.length -1) { arr[i] = 'A'; } else { arr[i] = (char)(arr[i] + 1); } } return String.valueOf(arr); } }
运行结果:
bCyzA