C#基础笔记1

一个有趣的两数交换

  

int i = 10;
int j = 20;

i = j +( j = i ) * 0;

 

  这里, 输出结果为:i = 20 ; j = 10; 

首先 明确一个概念,赋值运算是从右到左执行。所以,此处会先执行 i = 右边的运算

即 j + ( j = i ) * 0 ; 此处,从左到右执行,先读取到 j ,并把 j 相应的数值进栈 20 进栈。

进栈以后,发现有小括号,即执行小括号里面的运算,把 i  的值赋给 j 。

  此处, j 就是 i 原来的数值 10 了,然而,一开始进栈的 j 的值并不是把 j 进栈,而是

其对应的值进栈,那么该值还是 20 ,所以,与( j = i )* 0 相加的值为20 , 将其赋给 i 

则此时 i 的值为20 。就实现了数值的交换。 

 

一些运算函数

 

string s = "1234";
int i = Convert.ToInt32(s);
//或者是下面这种写法
int i = int.Parse(s);

将数字字符串转换成整型;

double i = 10.0;
double j = Math.sqrt(i);
double k = Math.Round(j,2);

将 i 开平方,然后把得到的值赋值给 j ;

k 取值为 j 的小数点后两位小数;

  *快捷生成函数的组合键:

1.先写一个函数头 比如:

int i , j;

private static void Method( i , j);

2.然后在函数后面按组合键shift + alt  + F10 .

2.1或者按ctrl + . (此方法有可能被输入法占用,少用)

3.快速调试小程序:把光标定位到想要调试的程序的位置,使用ctrl + F10即可运行程序并定位到程序 调试的状态

冒泡排序

明确思路:

1.冒泡,是从下往上,两两比对筛选出最上面的数字的。

2.那么,我们外层循环就是总共比对的次数,为 n-1 次。

3.内层循环,从最下面的开始(每次都是)比对到 n- i (当前次数)

 1 for(int i = 0 ; i < s.length - 1; i++)
 2 { 
 3      for ( int j = s.length -1 ; j >  i ; j --)
 4         {
 5             if ( arr[ j ] < arr[ j - 1] )
 6     
 7                 { 
              int temp = arr[ j ]; 8 arr[ j ] = arr [j -1]; 9 arr[j - 1] = temp; 10 } 11 } 12 }

 字符串处理

想要拼接字符串,使用 StringBuilder

str 为不同的字符串,Append (str) 就相当于在后面不断追加字符串。

最后,想要输出字符串,就把sb.ToString (); 用一个 string 型变量接走就可以了。

str.Trim(); 此函数可以去掉字符串两端的空格。

StringBuilder sb = new StringBuilder ();

sb.Append (str) ;

string aaa = sb.ToString();

aaa.Trim (); //去掉字符串两端的空格

 

但是,当你想要拼接的字符串如果需要翻转,这个StringBuilder 是不能做到翻转的。

我们需要用数组把字符串保存起来,使用List <string> ;list 集合。

List <string> li = new List <string> ();
li.Add(str);
li.Reverse (); //此处集合就可以实现翻转了。
//但仍然不是字符串
//首先,把该反转后的集合变成数组
Array[] arr = li.ToArray();
//然后,用空字符串""把集合中的对象串联起来
string str = string.Join("",arr);
//记一组判别是否为空格的函数
string str = "   1  2   3    ";
char.IsWhiteSpace(str[i]);
str.Substring(a,b); // 从str 的索引a 截取长度 b;
1              string msg = "    hello     world  ,你好 ,   世界   !    ";
2             //先把两头空格去掉;
3             msg = msg.Trim();
4             //再用split 方法将字符串中间的空格去掉
5             string[] str = msg.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
6             //使用string.Join把字符串数组之间加空格并串联成一个字符串
7             Console.WriteLine(string.Join(" ", str));

 

posted on 2017-12-06 09:33  Howins  阅读(82)  评论(0)    收藏  举报

导航