黑马程序员技术交流社区
标题:
输入一个字符串,如何找出字符串中所有e的位置?
[打印本页]
作者:
王洪磊
时间:
2013-6-4 19:22
标题:
输入一个字符串,如何找出字符串中所有e的位置?
本帖最后由 王洪磊 于 2013-6-21 10:18 编辑
如题,今天看基础视频这样一个题,但是没有答案,于是自己写了一下,感觉不太完善,请高手帮忙指导。
Console.WriteLine("请输入一句话");
string str = Console.ReadLine();
int i = str.IndexOf('e');
while (i > -1)
{
i += str.IndexOf('e');
if (i >= str.Length)
break;
i = str.IndexOf('e', i);
Console.WriteLine(i);
}
Console.ReadKey();
复制代码
作者:
胡章诚
时间:
2013-6-4 19:49
首先将待测字符串 str 转成 char 数组str[str.length-1],另外再定义一个int数组int[str.length-1],
用for循环遍历字符数组,在 for 里面用 if 判断,
如果=='e',则用int[j]记下对应的i 值(可能是i+1,是实际情况而定),并且将 j++,以便下一次使用,
如果!=‘e’ ,则继续循环,直到结束
结束以后,int[]记录下的就是 ‘e’ 的位置
作者:
zpzhangwenhan
时间:
2013-6-4 22:26
上代码:{:soso_e100:}
static void Main(string[] args)
{
//输入一个字符串,如何找出字符串中所有e的位置?
string strs = Console.ReadLine();
//转成数组
char[] chars = strs.ToArray();
for (int i = 0; i < chars.Length; i++)
{
if(chars[i].Equals('e'))
{
Console.WriteLine(i);
}
}
Console.ReadKey();
}
复制代码
作者:
关关雎鸠
时间:
2013-6-5 10:10
本帖最后由 关关雎鸠 于 2013-6-5 10:13 编辑
static void Main(string[] args) {
//输入一个字符串,如何找出字符串中所有e的位置?
string str = Console.ReadLine();
string index = string.Empty; //存放e的位置
for (int i = 0; i < str.Length; i++) {
char c = str[i];
if (c == 'e') {
index += i.ToString() + ","; //把所有出现e的位置(索引)拼接起来
}
}
Console.WriteLine(index); //输出e的位置
Console.ReadKey();
}
复制代码
不知道我这个行不行,没有区分大小写,只是简单的示例下。注意索引从0开始的。
W.png
(6.37 KB, 下载次数: 0)
下载附件
2013-6-5 10:11 上传
作者:
王震
时间:
2013-6-21 00:12
Console.WriteLine("请输入一句话");
string str = Console.ReadLine();
int i = 0;
do
{
i = str.IndexOf('e', i+1);
Console.WriteLine(i + 1);
} while (i!=-1);
Console.ReadKey();
作者:
万大述
时间:
2013-6-21 09:59
string strs = Console.ReadLine();//要求用户输入一个待测的字符串。(区分大小写)
//string strs = Console.ReadLine().ToLower();//该句不区分大小写。
char[] chars = strs.ToArray();//将输入字符串转成字符数组。
int count = 0;
int[] position = new int[strs.Length];
for (int i = 0; i < chars.Length; i++)//用for循环找出其中‘e’的是第几个字符。
{
if (chars[i].Equals('e'))//让数组中所有元素和‘e’进行比较是否相等,相等则输出
{
position[count] = i + 1;
count++;
}
}
Console.Write(strs+"中的第");//不换行
for (int i = 0; i < count; i++)
{
if (i != count - 1)//让最后一个不输出”、“。
{
Console.Write(position[i] + "、"); //不换行。
}
else
{
Console.Write(position[i]);//不换行。
}
}
Console.WriteLine("个字符是”e“!");
Console.ReadKey();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2