zoukankan      html  css  js  c++  java
  • c#编程基础之字符串基础

    1.C#中单个的字符串用单引号包含就是char类型,('a'),单引号中放且只能放一个字符

    2.单个字符也可以表示为字符串,还可以有长度为0的字符串。

    3.使用s.Length属性来获得字符串中的字符个数。

    4.string 可以看做是char类型的只读数组。char c=s[1];例子:遍历输出string中的每个元素。

    5.c#中字符串有一个重要的特性:不可变性。字符串一旦声明,就不再可以改变。

    所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。

    6.如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法的得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数。来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。

    7.string s="abc";s="123"; s这不是变了吗?

    解析:区分变量名和变量指向的值的区别。程序中有很多可以有很多的字符串,然后由字符串变量指向他们,变量可以指向其他的字符串。但是字符串本身并没有发生变化。字符串不可变性值得是内存中的字符串不可变,而不
    是变量不变。

    例一:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 字符串基础
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s1 = "hello";//定义一个字符串
                char[] chars = s1.ToCharArray();//将字符串存放到字符数组里
                chars[0]='a';//字符数组第一个元素修改为'a'
                string s2 = new string(chars);//新构建一个字符串将字符数组chars内容保存下来。
                Console.WriteLine("s1={0}",s1);//改变chars并不会改变chars,因为chars是一份拷贝
                Console.WriteLine("s2={0}",s2);//打印字符串s2,s2由于新得到了值,所以打印alleo,但今后其字符串不会再改变。
                Console.ReadKey();
            }
        }
    }

    运行结果:

     例子二:

     源码如下:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 字符串基础
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s = "hello";//定义一个字符串
                Console.WriteLine(s);//s指向字符串“hello”
                s = "yello";
                Console.WriteLine(s);//s指向字符串“yello”,s指向发生改变,但字符串本身没有改变。
                Console.ReadKey();
            }
        }
    }

    程序截图:

    例子三:

    源码如下:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 字符串基础
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s1 = "hello";//定义一个字符串
                string s2 = s1;//s2指向s1指向的字符串,而不是s2指向s1,哪怕s1以后指向了其他内存,那么s2还是指向"hello"
                char[] chars = s1.ToCharArray();//将字符串存放到字符数组里
                chars[0] = 'a';//字符数组第一个元素修改为'a'
                s1 = new string(chars);//新构建一个字符串将字符数组chars内容保存下来。
                Console.WriteLine("s1={0}", s1);//改变chars并不会改变chars,因为chars是一份拷贝
                Console.WriteLine("s2={0}", s2);//过河拆桥,和s1的改变没有任何关系
                Console.ReadKey();
            }
        }
    }

    程序运行截图:

  • 相关阅读:
    青蛙学Linux—MySQL常用命令(二)
    青蛙学Linux—MySQL常用命令(一)
    青蛙学Linux—MySQL安装和初始化
    青蛙学Linux—MySQL
    青蛙学Linux—Apache提供HTTPS服务
    青蛙学Linux—Apache配置PHP支持
    青蛙学Linux—Apache+Tomcat实现动静分离以及负载均衡
    青蛙学Linux—Apache负载均衡的实现
    青蛙学Linux—Apache反向代理的实现
    青蛙学Linux—Apache的MPM模式和httpd-mpm.conf
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/3902689.html
Copyright © 2011-2022 走看看