第七天
来源:互联网 发布:linux驱动框架 编辑:程序博客网 时间:2024/04/30 10:21
传智博客。传智博客老师今天教授了集合
先复习了。然后讲了
字符串是1个字符数组、字符串的恒定性、字符串常用方法、StringBulider、.ArryList、ForEach原理、Hashtable
集合
一.字符串
1. str.Length 表示指定字符串的字符个数.
2.字符串对象一旦创建 这个对象就不能被修改.
3.在创建1个字符串对象的时候 会先去字符串拘留池中寻找是否有相同字符串内容的对象
如果有就直接让变量指向这个对象 如果没有在创建新的对象.
4.字符串对象一旦创建 不会被GC回收.
string s1 ="xiaojian";
string s2 ="xiaojian";
string s3 =s1+s2;
string s4 = "xiaojianxiaojian";
Console.WriteLine("{0},,,{1}", s3, s4);//s3和s4引用的地址是一样的_
5.打断点,在即时窗口中,输入s3,会出现它的值,输入*s3,会输出地址
string s5 = "xiaojian";
s5 = "xiaojian1";
Console.WriteLine("{0}",s5);//此时两个s5的地址都不相同。
6.
构造函数只能传递字符数组.
String s = new String(new char[] { '我', '爱', '你', '们' });
7.string.Empty代表1个空的字符串"" 强调不是指的null.
String s = new String(new char[] {'w','a'});
if (s !=string.Empty)
{
Console.WriteLine("having something");
}
8" " 和"" 有区别,前者是空格字符串,后者为空.
9.string.Compare(s1, s2); 比较两个字符的大小.
string s1 = "xiaojian";
string s2 = "xiaojian1";
int b = string.Compare(s1, s2);
Console.WriteLine(b);
10.string.Concat(s1, s2); 连接字符串并组成1个新串
string s1 = "xiaojian";
string s2 = "like life";
string s3 = string.Concat(s1, s2);
Console.WriteLine(s3);
11.Contains方法 判断制定的串里面是否包含指定的子串.s.Contains("life");
string s1 = "I love life";
bool i = s1.Contains("life");
Console.WriteLine(i);
12.判断指定的字符串是否以指定的字串结尾
b = str.EndsWith("!!");
string s1 = "I love life";
bool i = s1.EndsWith("life");
Console.WriteLine(i);
//判断指定的字符串是否以指定的字串开始
b = str.StartsWith("天安");
13.Format(String, Object) 格式化字符串
string str1 = string.Format("我爱{0},你爱{1}", "你", "他");
14.IndexOf() 查找指定的字符或者字符串在串中的索引 如果没有返回-1
int index = str.IndexOf("门上1");
从字符串的结尾往前面查 第一次字串出现的索引
int index = str.LastIndexOf('!');//以最左边
15.在字符串的指定位置 插入字符串.
string str4 = str3.Insert(1, "我");
16.判断指定的串 是不是null值或者string.Empty ""
string str5 = null;
bool b = string.IsNullOrEmpty(str5);
17. 从指定的下标一直删除到最后
str1 = str1.Remove(4);
从指定的下标删除指定的个数字符
str1 = str1.Remove(1, 2);
18.
替换
str1 = str1.Replace("我", "他");他替换了我
19.
以指定的字符分割字符串返回数组.
string[] str2 = str1.Split(',', ';');
string [] str2 = str1.Split(new string[] { "hate"}, StringSplitOptions.RemoveEmptyEntries);分割后不能有空字符串
ToCharArray() 将字符串转换为字符数组.
string s1 = "I love life";
char[] s = s1.ToCharArray();
ToLower() 转换为小写
ToUpper() 转换为大写
Trim() 去掉字符串前后的空格
20.接收用户输入的一句英文,将其中的单词以反序输出。
string str = Console.ReadLine();
string[] lines = str.Split(' ');
for (int i = lines.Length - 1; i >= 0; i--)
{
Console.Write(lines[i]+" ");
}
21.
Stopwatch watch = new Stopwatch();引用空间using System.Diagnostics;
watch.Start();
watch.Stop();
22.
StringBuilder sb = new StringBuilder();
在sb对象里的字符串中追加新串.
sb.Append("1").Append("2").Append("3");
追加字符串 并在末尾加换行符.
sb.AppendLine("123");
23,
Hashtable是一个普通的类,要引入命名空间using System.Collections
Hashtable table = new Hashtable();
table.Add(0, 1);
Console.WriteLine(table[0]);
table.Add("","");
Hashtable table = new Hashtable();
table.Add("xiaojian", "haoren");
Console.WriteLine(table["xiaojian"]);
增加元素 Key不能重复
table[""] = ;
改值通过Key来确定元素.
table.Remove("");//移除指定键的元素
table.Clear();//全部清除
foreach(object obj in table.Keys)table.Keys也可以改成table.Values
{
console.WriteLine(obj);
}
如果直接遍历Hashtable 每1个遍历项都是1个DictionaryEntry对象 在这个对象里的Key和Value属性保存了每1项的键值
foreach (object obj in table)
{
DictionaryEntry en = (DictionaryEntry)obj;
Console.WriteLine(en.Key);
}
bool i = table.Contains();判断键值
bool i = table.ContainsValue();
table.Count//得到哈希表中键/值的个数
动态数组
ArrayList list = new ArrayList();
//1新增元素
//1. ArrayList内部存储数据的是1个object数组. 创建这个类的对象的时候 这个对象里的数组的长度为0.
//2. 调用Add方法加元素的时候. 如果第一次增加元素 就会将数组的长度变成4 往数组里加.
//3. 如果存储数据的数组满了.就会新建1个数组长度是原来的数组的2倍.这个数组被原来数组的变量所引用.
int index = list.Add(1);
list.Add(2);
添加1个实现了IConnection接口的对象,数组就实现了这个接口.
int [] arr = {1,2,3,4,5};
list.AddRange(arr);
表示object数组的长度.
int cap = list.Capacity;
修改元素的值.可以通过索引器来取值或者修改值.
list[0] = 110;
遍历.Count属性代表的是动态数组里的元素的个数.
for(int i=0;i<list.Count;i++)
{
Console.WriteLine(list[i]);
}
删除指定的值类型对象 删除的是第1个
list.Remove(110);
list.Remove(p);
删除指定的下标的元素.
list.RemoveAt(0);
删除指定的范围.
list.RemoveRange(1,2);
清空动态数组中的数据。、清空之后数组的长度不变.
Console.WriteLine(list.Capacity)
list.Clear();
Console.WriteLine(list.Capacity)
反序
list.Reverse();
查
ArrayList li = new ArrayList(120);
int[] arr = {1,2,3,4};
li.AddRange(arr);
foreach(object i in li)
{
Console.WriteLine(i);
}
改
li[0] = 12;
// 随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,
//并且都是偶数(添加10次,可能循环很多次。)
Random r = new Random();
ArrayList list = new ArrayList();
while(true)
{
int num =r.Next(1,101);
if(!list.Contains(num)&&num%2==0)
{
list.Add(num);
}
if(list.Count==10)
{
break;
}
}
foreach(int i in list)
{
Console.WriteLine(i);
}
// 有一个字符串是用空格分隔的一系列整数,
//写一个程序把其中的整数做如下重新排列打印出来:
//奇数显示在左侧、偶数显示在右侧。
//比如‘2 7 8 3 22 9 5 11’显示成‘7 3 9 2 8 22’。
string str = "2 7 8 3 22 9 5 11";
string[] strs = str.Split[" "];
ArrayList ji = new ArrayList();
ArrayList ou = new ArrayList();
foreach(string s in strs)
{
int num = int.Parse(s);
if(num%2==0)
{
ou.Add(num);
}
else
{
ji.Add(num);
}
}
ji.AddRange(ou);
IEnumerator tor = ji.GeeEnumerator();
while(tor.MoveNext())
{
Console.WriteLine(tor.Current);
}
-------foreach的代码就是这样的
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- 第七天
- php七天入门教程第七天
- 世界杯第七天
- 项目组长第七天
- IBM实习第七天
- 第七天 目标
- JNI生成so
- Android开发学习之快速实现圆角ListView
- Axure 6.5 页面原型----同一页面文本域里输入值,文本面板就显示出来
- java实现约瑟夫环问题
- 基于h a d oop的海量图片存储模型 的分析和设计
- 第七天
- CentOS 6.5 搭建CDH5源
- IOS开发:开发者账号申请后真机调试详细步骤
- div标签在body里水平垂直居中
- 计算服务器响应时间(HttpWebRequest)
- 算法中的链表
- Visual Studio插件学习:Resharper
- 新的一年,新的开始
- CSS解读之alpha通道与opacity属性的区别