using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test1
{
enum Gender { Male, Female, Unkown };
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello");
//Console.WriteLine("请输入一串字符:");
//string s = Console.ReadLine();
//Console.WriteLine("您输入的字符串为:"+s);
//Console.WriteLine("您输入的字符串为:{0}",s);
//字符串的转义
//string s1 = @"c:\temp\file\1.jpg";
//string s1 = "c:\\temp\\file\\1.jpg";
//Console.WriteLine("{0}", s1);
//
//Convert简单数据类型转换
//Convert.ToString() Convert.Toint32();
/*Console.WriteLine("请输入第一个整数:");
string s1 = Console.ReadLine();
Console.WriteLine("请输入第二个整数:");
string s2 = Console.ReadLine();
int i1 = Convert.ToInt32(s1);
int i2 = Convert.ToInt32(s2);
Console.WriteLine("{0}+{1}={2}", i1,i2,i1+i2);*/
/*Console.WriteLine("int最大值{0},最小值{1}",int.MaxValue, int.MinValue);
Console.WriteLine("byte最大值{0},最小值{1}", byte.MaxValue, byte.MinValue);
byte b = 3;
int i1 = b; //显示式转换, 变量b转换后不能满足int类型变量i1的值,所以叫显示式转换,程序员自己负责
//隐式转换:当目标一定能满足原类型转换过去后的要求的话就是隐式转换
//显示转换:当目标不一定能满意足原类型转换过去的要求的话就需要显示转换(自己负责)
b = (byte)i1; //隐藏转换 i1也就是int类型的,转换为byte类型的变量b,转换后是一定满足的,所以隐式转换*/
///
//枚举
//enum Gender{ Male, Female, Unkown};
//Console.WriteLine(Gender.Male);
//Console.WriteLine(Gender.Female);
//Console.WriteLine(Gender.Unkown);
///
//数组
/*int[] nums = { 52,5,8};
int[] news = new int[3];
string[] str = new string[5];
Console.WriteLine("str.length:{0}",str.Length);
for (int s = 0; s < str.Length; s++) {
str[s] = Convert.ToString(s);
}
foreach (string name in str) {
Console.WriteLine(name);
}*/
//函数
/*int[] ages = {22,44,87,99,34};
double eman = AgeMean(ages);
Console.WriteLine("平均年缺为:{0}", eman);
hello();*/
///
//字符串基础
/*char a = 'a'; //单个字符
string str = "hello C#";
foreach (char c in str) {
Console.Write(" {0} ", c);
}
//C#中字符串有一个重要的特性,不可变性,字符串一量声明就不再可以改变,所以只能通过索引来读取定位置的char,不能对指定位置的char进行修改
string s1 = "xlc";
s1 = "xxd"; //这里并没有改变s1这块内存空间,而是让s1重新指向了一块内存空间
Console.WriteLine("s1:{0}",s1);
//要区分变量名和变量指向的值的区别,程序中可以有很多字符串,然后由字符串变量指向它们,变量可以指向其他的字符串,但字符串本身没有变化,字符串不可变性指的是内存中的字符串不可变,而不是变量不变*/
//
//string 常用函数
//ToLower(); 得到字符串的小写形式
/*string s = "HELLO";
s = s.ToLower();
Console.WriteLine(s);
//ToUpper(); 得到字符串的大写形式
string s1 = "hello";
s1 = s1.ToUpper();
Console.WriteLine(s1);
//去掉字符串两端的空白
string s2 = " 去掉字符串两端的空格 ";
Console.WriteLine(s2);
s2 = s2.Trim();
Console.WriteLine(s2);*/
//两个字符串进行比较,区分大小写
//string s1 = "zzz";
//string s2 = "bbb";
//bool b = s1.Equals(s2,StringComparison.Ordinal);
//Console.WriteLine("{0}与{1}的比较结果为:{2}",s1,s2,b);
//忽略大小写的比较
//bool b = s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
//Console.WriteLine("{0}与{1}的比较结果为:{2}",s1,s2,b);
//两字符串进行比较
//如果相等返回0,如果原值大于被比较值返回比0大的值,如果被比较值大于原值返回比0小的值
//int i = s1.CompareTo(s2);
//Console.WriteLine("{0}与{1}的比较结果为:{2}", s1, s2, i); //1 因为b比a大,而z也比b大
//字符串分割
/*string names = "aa,bb,cc,dd,ee,ff";
string[] name = names.Split(',');
for (int i = 0; i < name.Length; i++) {
Console.WriteLine("{0}:{1}",i,name[i]);
}*/
/*string names = "aa,bb,cc)dd*ee|ff";
string[] name = names.Split(',',')','|','*');
for (int i = 0; i < name.Length; i++)
{
Console.WriteLine("{0}:{1}", i, name[i]);
}*/
//去掉空的数据值
/*string name = "aa,bb,cc,dd,ee,ff,,ss,,,ff";
//string[] names = name.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries);
string[] names = name.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries);
foreach (string namei in names) {
Console.WriteLine("我的名字叫:{0}",namei);
}*/
//将字符串按照指定的string分割为字符串数组
/*string s = "我是刘邦我是关羽";
string[] ss = s.Split(new string[]{"我是"},StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < ss.Length; i++) {
Console.WriteLine(ss[i]);
}*/
//字符串替换
//string s = "我是小菊";
//s = s.Replace("小菊","向工");
//Console.WriteLine(s);
//切取指定长度的字符串
//string title = "什么活就让他们干,自己孩子有什么客气的";
//string title_ = title.Substring(3,title.Length-3); //切中文也好使样
//Console.WriteLine(title_);
//判断字符串中是否含有指定字符串
//string title = "什么活就让他们干,自己孩子有什么客气的";
//bool ii = title.Contains("他们干");
//Console.WriteLine(ii);
//判断字符串是否以指定字符串开始
//string title = "什么活就让他们干,自己孩子有什么客气的";
//bool ii = title.StartsWith("什么");
//Console.WriteLine(ii);
//判断字符串是否以指定字符串结束
//string title = "什么活就让他们干,自己孩子有什么客气的";
//bool ii = title.EndsWith("xxd");
//Console.WriteLine(ii);
//切取value第一次出现的位置
/*string title = "什么活就让他们干,活自己孩子有什么客气的";
//int index = title.IndexOf("活");
int index = title.LastIndexOf("活");//最后一次出现
if (index >= 0) {
title = title.Substring(index, title.Length-index);
Console.WriteLine("第一次出现'活'后面的字符串为:{0}",title);
}*/
//ref out
//ref 必须先初始化,因为是引用,所以必须先有,才能引用
//而out则是内部为外部赋值,所以不需要初始化
/*int i = 55;
IncAge(ref i);
Console.WriteLine("i:{0}",i);
string name;
nameOut(out name);
Console.WriteLine("我的名字为:{0}",name);*/
}
/*static void nameOut(out string name)
{
name = "xlc";
}
static void IncAge(ref int age)
{
age += 5;
}*/
/*static void hello(string name = "xlc", int age = 23)
{
Console.WriteLine("hello!欢迎您:{0},年龄为:{1}", name, age);
}
static double AgeMean(params int[] ages)
{
int count = 0;
for(int s=0; s<ages.Length; s++){
count += ages[s];
}
double age = count / ages.Length;
return age;
}*/
}
}