在字符串中的奇数位置执行选择

时间:2017-02-02 04:54:57

标签: c#

我必须用字母表中的下一个字符替换奇数位置的输入字符串的字符 例如

输入 - package Graphix; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; public class ImageLoader { public static BufferedImage laodImage(String path){ try { return ImageIO.read(ImageLoader.class.getResource(path)); } catch (IOException e){ e.printStackTrace(); System.exit(1); } return null; } }

输出 - ABCD

我想要这样的东西

BBDD

2 个答案:

答案 0 :(得分:3)

你几乎就在那里,需要做更多的事情来实现目标。您必须注意以下事项并进行更改:

  • 条件i%2==0确定是否需要替换字符,因此您必须在此处应用条件运算符(?:)。
  • 对于有效条件,您必须获得下一个字符。为此,您可以尝试(char)((int)x + 1)。这将首先评估(int)x并给出该特定字符的整数值。然后将1添加到它然后获取相应的字符。
  • 对于错误情况,请使用相同的字符。
  • 完成这些步骤后,您将获得一个字符数组,您可以使用String.Join从字符数组中输出字符串

您可以尝试这样的事情:

string input = "ABCD";
char[] k = input.Select((x, i) => i % 2 == 0 ? (char)((int)x + 1) : x).ToArray();
string output = String.Join("",k);

Working Example

请注意以下事项:

  • 在此代码中,我们没有限制字符,如果您的输入包含Z,则将分配ASCII表中的下一个值,即[
  • 如果您希望zaZA,那么您必须为此申请条件。

答案 1 :(得分:0)

string output = string.Concat(input.Select((c, i) => (char)(c + ++i % 2)));