精华内容
下载资源
问答
  • 问:程序中有如下变量: char pMsg[100]; CString str; 其中pMsg已经被赋值了,怎样把pMsg的值传给str? 答:str.Format("%s",pMsg);

    问:程序中有如下变量:   

     

          char pMsg[100];

          CString str;

         其中pMsg已经被赋值了,怎样把pMsg的值传给str?

     

    答:str.Format("%s",pMsg);

    展开全文
  • 在串口通信中遇到的一个比较常见的问题就是需要字节流转换为字符串的问题,不管是需要将接受到的数据打印到log还是需要将字符串显示到Demo上,遇到这种问题还要自己写一个转换函数太过于麻烦,那么标准库中是否有...

    一、字节数组转换为等效的16进制字符串

    在串口通信中遇到的一个比较常见的问题就是需要把字节流转换为字符串的问题,不管是需要将接受到的数据打印到log还是需要将字符串显示到Demo上,遇到这种问题还要自己写一个转换函数太过于麻烦,那么标准库中是否有相关函数可以直接转化呢?

    1、Convert.ToString(byte value, IFormatProvider provider)
            // 摘要:
            //     使用指定的区域性特定格式设置信息,将指定的 8 位无符号整数的值转换为其等效的字符串表示形式。
            // 参数:
            //   value:
            //     要转换的 8 位无符号整数。
            //   provider:
            //     一个提供区域性特定的格式设置信息的对象。
            // 返回结果:
            //     value 的字符串表示形式。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                byte[] a = { 0x1A, 0x2B, 0x3c, 0x4d, 0x5f };
                string str = "";
                foreach (byte aa in a)
                {
                    str += Convert.ToString(aa,16);
                }
                Console.WriteLine(str);
                Console.ReadLine();
            }
        }
    }

     运行结果如下:

    该函数缺点是不支持自定义格式的修改,比如转换为大写形式、补0之类的功能。 

    2、ToString(string format)

            // 摘要:
            //     使用指定的格式将当前 System.Byte 对象的值转换为它的等效字符串表示形式。
            // 参数:
            //   format:
            //     一个数值格式字符串。
            // 返回结果:
            //     按照 System.Byte 参数指定的方式进行格式设置的当前 format 对象的字符串表示形式。
            // 异常:
            //   T:System.FormatException:
            //     format 包含不受支持的说明符。 “备注”部分中列出了受支持的格式说明符。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                byte[] a = { 0x0A, 0x1B, 0x2C, 0x3d, 0x4e, 0x5f };
                string str = "";
                foreach (byte aa in a)
                {
                    str += aa.ToString("x2");
                }
                Console.WriteLine(str);
                str = "";
                foreach (byte aa in a)
                {
                    str += aa.ToString("X2");
                }
                Console.WriteLine(str);
                Console.ReadLine();
            }
        }
    }
    

    运行结果如下:

    这种方法转换较第一种功能多了很多,只要设置相应的转换格式,即可得到自己希望得到的样子。

    关于更多ToString() 函数参数的格式,请参阅C# byte转为16进制字符串~~~ToString()格式

    这种方法不可避免的还是需要借助一个循环来把字节数组中的字节一个一个转化为16进制数字,那么有没有方法能直接一行就完成这个转化呢?

    接下来就是重点要介绍的

    3、public static string ToString(byte[] value);
            // 摘要:
            //     将指定的字节数组的每个元素的数值转换为其等效的十六进制字符串表示形式。
            // 参数:
            //   value:
            //     字节数组。
            // 返回结果:
            //     十六进制对字符串连字符分隔的其中的每个对表示中的相应元素value; 例如,"7F-2c-4A-00"。
            // 异常:
            //   T:System.ArgumentNullException:
            //     value 为 null。
     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                byte[] a = { 0x0A, 0x1B, 0x2C, 0x3d, 0x4e, 0x5f };
                string str = BitConverter.ToString(a);
                Console.WriteLine(str);
                Console.ReadLine();
            }
        }
    }
    

    运行结果如下:

    这样,就实现了只需要一行即可将字节数组转化为16进制数字格式的字符串了。此函数还有其他重载函数,支持指定位置、指定长度进行转化。

    当然,缺点就是也不支持自定义的格式,只能忍受每个字节中间都有一个“-”了。

    二、16进制字符串怎样转化为等效的字节数组

    据作者所知,应该是没有办法直接将16进制字符串转化为等效的字节数组的,所以我们只能一个字节一个字节的转化

    可以使用byte.Parse()方法,例如:byte.Parse("3f")或byte.Parse("3f", NumberStyles.HexNumber)

    byte[] HexStrToArray(string HexStr)
    {
        List<byte> HexArray = new List<byte>();
        for (int i = 0; i < HexStr.Length; i += 2)
        {
            try
            {
                HexArray.Add(byte.Parse(HexStr.Substring(i, 2)));
            }
            catch
            {
                //不要相信传进来的字符串一定是标准的
                return HexArray.ToArray();
            }
        }
        return HexArray.ToArray();
    }

     

    展开全文
  • gson将字符串转化json数组注意事项

    千次阅读 2016-10-03 12:06:10
    首先说说怎样把j对象数组转换为json字符串,用gson两句话搞定。 Gson gson=new Gson(); String friendlistresult=gson.toJson(friendList); 接下来,要把json字符串转为对象数组则稍微麻烦一些。 Gson gson=new...

    首先说说怎样把j对象数组转换为json字符串,用gson两句话搞定。

     Gson gson=new Gson();
            String friendlistresult=gson.toJson(friendList);

    接下来,要把json字符串转为对象数组则稍微麻烦一些。

    Gson gson=new Gson();
                    List<FriendInfo> tempList=new ArrayList<>();
                    tempList = gson.fromJson(spContactList.getString("friendList",""), new TypeToken<List<FriendInfo>>(){}.getType());
                    for(int i=0;i<tempList.size();i++){
                        FriendInfo friendInfo=tempList.get(i);
                        friendList.add(friendInfo);
                    }

    刚开始,我以为tempList可以直接当对象数组用,但发现用来构建listview没有数据,然后tempList.get(0).getFriendname()又有值,所以我循环把tempList的对象数组取出来,放到FriendList中,结果数据果然回来了
    展开全文
  • 转载自:http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。我想cell变成char型...实现str2cell功能的函数是cellstr,将字符数组转换为ce...

    转载自:http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html

    用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。

    我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。

    就像没有str2cell一样。

    实现str2cell功能的函数是cellstr,将字符数组转换为cell型字符串数组

    函数语法为c = cellstr(S)

    它的作用是:将字符数组S中的每行分割成为cell细胞元组C的一个元素。并删除S的每行尾部空格

    正好与char相反,char是将cell字符串数组转化为字符数组s=char(c)

    很多人分不开字符数组和字符串什么区别。

    >>str1='i love matlab' % 这是一个字符数组,也是一个字符串

    str1 =

    i love matlab

    >>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格

    str2 =

    I

    am

    a

    boy

    由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组。

    >>char('i','love','matlab') % char函数会自动补充空格

    ans =

    i

    love

    matlab

    >>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格。

    ans =

    'i' 'love' 'matlab'

    下面来看几个例子:

    例1:创建一个字符串数组,记住补空格

    >>S= ['abc '; 'defg'; 'hi '] (下划线代表空格)

    S =

    abc

    defg

    hi

    >>whos S

    Name Size Bytes Class

    S    3x4  24    char array

    例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :

    >>c = cellstr(S)

    c =

    'abc'

    'defg'

    'hi'

    >>whos c

    Name Size Bytes Class

    c    3x1  294   cell array

    例3:再使用char函数将cell字符串转换为字符数组

    >>char(c)

    ans =

    abc

    defg

    hi

    >> whos ans

    Name Size Bytes Class Attributes

    ans  3x4  24    char

    展开全文
  • 在编程的时候,经常遇到要判断一个字符串中的字符是否是数字(0-9)  下面我给大家介绍几种实现方法 1.使用Character.isDigit(char)判断 String str = "123abc";...//把字符串转换为字符数组 String
  • // 转化为字符串 int[] intArray = new int[str.length()];// 新建一个数组用来保存num每一位的数字 for (int i = 0; i < str.length(); i++) { // 遍历str将每一位数字添加如intArray Character ch
  • 展开全部1.使用Character.isDigit(char)判断String str = "123abc";if (!...//把字符串转换为字符数组StringBuffer title = new StringBuffer();//使用StringBuffer类,非数e69da5e887aa323131...
  • 假设你有一个字符串“abcd”,并且你想它转换成字节数组,你会怎样做?记住,String是由char数组构成的,所以它涉及到字符到字节的转换。值得庆幸的是,Java提供了一种方便的getBytes()方法来将String转换为Java...
  • 剑指offer——把数组排成最小的数 ...需要把整数转换字符串,进而比较。在比较的时候,不能分开比较两个数的大小,而应该比较两个数拼接以后,怎样拼接小。比如3、32。应该比较332和323两个字符...
  • 1.使用Character.isDigit(char)判断 String str = "123abc"; if (!"".equals(str)) { ...//把字符串转换为字符数组  StringBuffer title = new StringBuffer();//使用StringBuffer类,非数字放到title
  • 1.使用Character.isDigit(char)...//把字符串转换为字符数组 StringBuffer title = new StringBuffer();//使用StringBuffer类,非数字放到title中 StringBuffer hire = new StringBuffer();//数字放到hire中 fo...
  • 在编程的时候,经常遇到要判断一个字符串中的字符是否是数字(0-9) 下面我给大家介绍几种实现方法1.使用Character.isDigit(char)判断String str = "123abc";...//把字符串转换为字符数组 StringBuffer t
  • String字符串注意点和常用方法 ...如果想要改变的话,可以用char[] cs = "hello".toCharArray()把字符串转换成字符型数组,然后改变字符型数组什么字符串不能用==比较? 因为字符串默认是一种引用,如果直接
  • 先将输入的数字存为字符数组,再从左往右依次将被5隔开的字符串拷贝到一个新的整型数组(需进行数据类型转换)(题目中有输入数据保证,因此不用担心整型变量可表示范围不足的问题),给新的数组元素进行排序后输出...
  • 从HTML表单到服务器端,必须String转换为特定的数据类型。 2.字符串和基本数据类型之间的类型转换由Parameters拦截器自动完成。当类型转换出错时由ConversionError拦截器负责添加与类型转换有关的错误消息(前提是...
  • 错误票据

    2019-03-10 13:42:08
    (2)先用读入整行字符串的方式读入每一行,然后用 strtok 函数分解字符串,之后用 stoi 函数将字符串类型的数据转换为 int 型数据。 strtok 函数:原型:char *strtok(char s[], const char *delim...
  • 解决方案:可以将它转化成为字符串,然后将该字符串转化成为字节数组,然后就可以将这个字节数组写进去了。这确实可以。可是很费力气,因为你要这个long类型的数(例如:12345678963214)进行转换成为String,然后...
  • 10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 指针数组的概念 161 10.7.2 指向指针的指针 164 10.7.3 main 函数的参数 166...
  • *4.15 我怎样把一个int变量转换为char*型?我试了类型转换,但是不行。 第5章 空指针 空指针和空指针常量 5.1 臭名昭著的空指针到底是什么? 5.2 怎样在程序里获得一个空指针? 5.3 用缩写的指针比较“if(p)”...
  • *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行。 81 第5章 空指针 82 空指针和空指针常量 82 5.1 臭名昭著的空指针到底是什么? 82 5.2 怎样在程序里获得一个空指针? 83 5.3 用缩写的...
  • UTF-8 and Unicode FAQ 3

    千次阅读 2005-09-26 00:18:00
    我该怎样修改我的软件?有两种途径可以支持 UTF-8, 我称之转换与硬转换.... 在输出时, 再把字符串转换回 UTF-8 形式.大多数应用程序只用软转换就可以工作得很好了. 这使得将 UTF-8 引入 Unix 成为切实可行的. 例
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0119 使用IntToStr函数将整数转换为字符串类型 80 0120 使用StrToInt函数将字符串转换成整数 81 0121 使用StrToBool函数将字符串转换为布尔类型 81 4.6 对话框函数 81 0122 使用InputBox函数显示输入对话框...
  • *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行。 52 第5章 空指针 53 空指针和空指针常量 53 5.1 臭名昭著的空指针到底是什么? 53 5.2 怎样在程序里获得一个空指针? 54 5.3 用...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行。 52 第5章 空指针 53 空指针和空指针常量 53 5.1 臭名昭著的空指针到底是什么? 53 5.2 怎样在程序里获得一个空指针? 54 5.3 用...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

怎样把数组转换为字符串