华为机试题--将字符串中的字母全部替换成字母的下一个字母

时间:2022-05-26 17:00:25

一、问题描述

功能描述:将字符串中的字母全部替换成字母的下一个字母,
要是最后一位是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