开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4791|回复: 9
收起左侧

[C#作业] 第十一天作业

[复制链接]
发表于 2019-4-15 16:35: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 的转换

发表于 2019-6-1 22:56:55 | 显示全部楼层   湖南省长沙市
第一题的图片
第十一天作业.png

评分

参与人数 1好评 +1 精币 +5 收起 理由
老郭 + 1 + 5 感谢分享,很给力!~

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2019-6-1 22:56:14 | 显示全部楼层   湖南省长沙市
C:\Users\Administrator\Desktop\第十一天作业.png
回复 支持 反对

使用道具 举报

发表于 2019-6-1 22:54:51 | 显示全部楼层   湖南省长沙市

今日作业:
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);
}

评分

参与人数 1精币 +5 收起 理由
老郭 + 5 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2019-5-2 17:36:15 | 显示全部楼层   江苏省南京市
1、画图表示下面代码在内存中的分配(描述出字符串驻留的相关概念)?
string str1 = "123";
string str2 = str1 + "456";
string str3 = "123456"
无标题.png

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);
}

评分

参与人数 1好评 +1 精币 +2 收起 理由
老郭 + 1 + 2 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2019-4-17 17:38:35 | 显示全部楼层   四川省眉山市
支持支持支持支持支持支持支持支持支持
回复 支持 反对

使用道具 举报

发表于 2019-4-16 00:17:17 | 显示全部楼层   江苏省镇江市
本帖最后由 qingshanlushui 于 2019-4-16 00:47 编辑

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


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

作业11

作业11

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);
        }









点评

写的非常好,逻辑很清晰 考虑了很多细节 但是对于文本处理来说 , 主要在筛选数据上要体现高效, 可以不用考虑这么多因素,取不到返回空文本就好了   广东省揭阳市  发表于 2019-4-16 11:07
emmm,总感觉取文本中间还有哪里不够……先睡觉。。明天再看……   江苏省镇江市  发表于 2019-4-16 00:58

评分

参与人数 1好评 +1 精币 +2 收起 理由
老郭 + 1 + 2 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2019-4-15 16:44:01 | 显示全部楼层   广东省深圳市
支持支持,贵在坚持!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表