精易论坛

标题: 第十一天作业 [打印本页]

作者: 老郭    时间: 2019-4-15 16:35
标题: 第十一天作业


今日学习内容


11.1 char string 编码 字符串驻留池 原理解读

11.2 字符创常用方法

11.3 高效构造字符串 StringBuilder

11.4 编码转换 字节与字符的转换 codePage base64 编写常见编码转换方法



今日作业:




  1. 画图表示下面代码在内存中的分配(描述出字符串驻留的相关概念)?


    string str1 = "123";
    string str2 = str1 + "456";
    string str3 = "123456"



  2. 使用C# 实现 文本取左边() 文本取右边() 文本取中间()




  3. 请用C# 实现 utf16到 GBK 的转换





作者: cfq2008    时间: 2019-4-15 16:44
支持支持,贵在坚持!
作者: qingshanlushui    时间: 2019-4-16 00:17
本帖最后由 qingshanlushui 于 2019-4-16 00:47 编辑

1、画图表示下面代码在内存中的分配(描述出字符串驻留的相关概念)?


string str1 = "123";
string str2 = str1 + "456";
string str3 = "123456"

2、使用C# 实现 文本取左边() 文本取右边() 文本取中间()
      static void Main(string[] args)
      {
      string str = "wang一只羊876";
            string right = "ng";
            string left = "87";


            Console.WriteLine(Takerighttext(str, right));
            Console.WriteLine(Takelefttext(str, left));
            Console.WriteLine(Takemiddletext(str,right,left));
            Console.Read();
        }


        //文本_取右边()
        public static string Takerighttext(string str,string right) {

            if (str == "" ||  right == "") return "参数不能为空";
            return (str.Substring (str.IndexOf (right)+right .Length ));

        }


        //文本_取左边()
        public static string Takelefttext(string str, string left)
        {
           if (str == "" ||  left == "") return "参数不能为空";
            return (str.Substring(0,str.IndexOf(left)));

        }


        //文本_取文本中间()
        public static string Takemiddletext(string str,string right,string left) {
            if (str == ""|| right =="" || left =="" ||str.IndexOf(right) = str.IndexOf(left)) return "参数不能为空";
            if (str.IndexOf(right) > str.IndexOf(left)) {          //交换
                string mid = right;
                right = left;
                left = mid;
            return (str.Substring(str.IndexOf(right) + right.Length, str.IndexOf(left) - str.IndexOf(right) - right.Length));
            }
            return(str.Substring(str.IndexOf (right)+right.Length ,str.IndexOf (left)- str.IndexOf(right) - right.Length));

        }




3、请用C# 实现 utf16到 GBK 的转换
        static string UTF16ConvertGBK(string text)
        {
            Encoding gbk = Encoding.GetEncoding("gbk");


            Encoding utf16 = Encoding.GetEncoding("utf-16");
            byte[] sourceByte = utf16.GetBytes(text);
            sourceByte = Encoding.Convert(utf16, gbk, sourceByte);
            return gbk.GetString(sourceByte);
        }










作者: 673150382    时间: 2019-4-17 17:38
支持支持支持支持支持支持支持支持支持
作者: 曜石头    时间: 2019-5-2 17:36
1、画图表示下面代码在内存中的分配(描述出字符串驻留的相关概念)?
string str1 = "123";
string str2 = str1 + "456";
string str3 = "123456"


2、使用C# 实现 文本取左边() 文本取右边() 文本取中间()
//文本_取左边()
public static string GetTextLeft(string str, string left){
        return (str.Substring(0,str.IndexOf(left)));
}
//文本_取右边()
public static string GetTextRight(string str,string right) {
        return (str.Substring (str.IndexOf (right)+right .Length ));
}
//文本_取文本中间()
public static string GetTextMiddle(string str,string right,string left) {
        return(str.Substring(str.IndexOf (left)+left.Length ,str.IndexOf (right)- str.IndexOf(left) - left.Length));
}
3、请用C# 实现 utf16到 GBK 的转换
static string UTF16ConvertGBK(string text){
         Encoding gbk = Encoding.GetEncoding("gbk");
         Encoding utf16 = Encoding.GetEncoding("utf-16");
         byte[] sourceByte = utf16.GetBytes(text);
         sourceByte = Encoding.Convert(utf16, gbk, sourceByte);
         return gbk.GetString(sourceByte);
}
作者: 鱼塘是我的    时间: 2019-6-1 22:54


今日作业:

1.画图表示下面代码在内存中的分配(描述出字符串驻留的相关概念)?

string str1 = "123";

string str2 = str1 + "456";

string str3 = "123456"



2.使用C# 实现 文本取左边() 文本取右边() 文本取中间()


using System;
using System.Text;

namespace vscodeprogect
{
    class Program
    {
        static void Main()
        {
            string str22="aaaads左fadfafklakfj中alkjdkfa右djlasdjflk";

            //取左边
            System.Console.WriteLine(Left(str22,"左"));
            System.Console.WriteLine(Right(str22,"右"));
            System.Console.WriteLine(Takerthe(str22,"左","右"));

        }

        //文本_取左边
        public static string Left(string str,string s)
        {
            string str1 = str.Substring(0,str.IndexOf(s));
            return str1;
        }

        //文本_取右边
        public static string Right(string str,string s)
        {

            string str1 = str.Substring(str.IndexOf (s)+s .Length);
            return str1;
        }

        //文本_取中间
        public static string Takerthe(string str,string lstr ,string rstr)
        {
            int x = str.IndexOf(lstr)+lstr.Length;
            string str1 = str.Substring(x,str.IndexOf(rstr,x)-x);
            return str1;
        }
    }
}

3.请用C# 实现 utf16到 GBK 的转换


static string UTF16ConvertGBK(string text)
{
    Encoding gbk = Encoding.GetEncoding("gbk");
    Encoding utf16 = Encoding.GetEncoding("utf-16");
    byte[] sourceByte = utf16.GetBytes(text);
    sourceByte = Encoding.Convert(utf16, gbk, sourceByte);
    return gbk.GetString(sourceByte);
}


作者: 鱼塘是我的    时间: 2019-6-1 22:56
C:\Users\Administrator\Desktop\第十一天作业.png
作者: 鱼塘是我的    时间: 2019-6-1 22:56
第一题的图片

第十一天作业.png (23.01 KB, 下载次数: 2)

第十一天作业.png





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4