大写字符串中的每个,每隔一个或每隔三个字的大写字母

时间:2014-08-14 13:43:47

标签: c# uppercase

我只知道ToUpper()将所有单词转换为大写,但如果我只想转换每一秒或每三分之一,甚至每一个单词转换为字符串等等,该怎么办?我应该使用什么方法?

2 个答案:

答案 0 :(得分:0)

您没有指定代码语言。

您可以使用简单循环:

int gap = 2;
// Array indexed from 0, if in your language it starts from 1
// replace 'gap-1' with 'gap'
for (int i = gap-1; i < lengthOfYourString; i+=gap) {
    yourstring[i] = yourstring[i].toupper();
}

此代码段将使每个第二个字符都为大写。

如果您指定编码语言我将编辑答案

,则此代码段将无法使用您的语言

答案 1 :(得分:0)

无论你使用哪种语言,我都怀疑会有一个内置函数来转换句子中的每个其他单词,所以你需要编写自己的逻辑。

这是一个例子(用C#编写),它将句子中的每个其他单词大写,因为句子'words'被空格划分

var words = sentence.Split(" ");
var output = new StringBuilder();

foreach(var index = 0; index < words.length; index++) {
    if (index % 2 == 0)
        output.Append(words[index].ToUpper());
    else
        output.Append(words[index]);
}