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

来源:互联网 发布:淘宝东大门代购哪家好 编辑:程序博客网 时间:2024/06/11 09:49

一、问题描述

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



0 0