字符种类数统计
问题描述
计算字符串中含有的不同字符的个数
多个相同的字符只计算一次
对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3
思路
- 把字符串 转换为数组,并且准备一个新的空字符串
- 遍历数组,如果数组里的元素不存在于新字符串里,就添加此元素到字符串里
- 输出新字符串长度
实现
using System;
public class Program {
public static void Main() {
string str1 = Console.ReadLine();
char[] arr = str1.ToCharArray();
string n2 = "";
for (int i = 0; i < arr.Length; i++) {
string a = new string(arr, i, 1);
if ((n2.IndexOf(arr[i])) == -1) {
n2 = n2.Insert(0, a);
}
}
Console.WriteLine(n2.Length );
}
}
用到的方法
1. //string a = new string(Array arr, int i, int j);
// 把char数组 arr 从arr[i]开始转换 j 个
//例:
char[] m = { '1', '2' ,'3','4'};
string n = new string(m, 1, 2); // 从m[1]开始转换 2 个
Console.WriteLine(n); // n = "23"
2. //String.IndexOf(a); // 字符串里a出现的位置,**如果没有则等于-1**
//String.Insert(int i,a); // 在字符串的 i 位置 插入a,其他往后移
//例: string q= "abcdefg";
Console.WriteLine(q.IndexOf(a)); // 输出为 0 q = q.Insert(0,"0");
Console.WriteLine(q); // 输出为 0abcdefg
借鉴
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var inputString = Console.ReadLine();
var count = inputString.ToList().Distinct().Count();
Console.WriteLine(count);
}
}
总结
重点方法:
//string a = new string(Array arr, int i, int j);
// 把char数组 arr 从arr[i]开始转换 j 个
//例:
char[] m = { ‘1’, ‘2’ ,‘3’,‘4’};
string n = new string(m, 1, 2); // 从m[1]开始转换 2 个
Console.WriteLine(n); // n = “23”