精华内容
下载资源
问答
  • I . 字符串定义 I . 字符串拼接 III . 字符串 API 调用 IV . 字符串 Demo 示例



    I . 字符串定义



    使用单引号 ’ ’ 和 双引号 " " 都可以定义字符串 ;

    //字符串定义 : 既可以使用单引号 , 也可以使用双引号
    String str_1 = '单引号定义字符串';
    String str_2 = "双引号定义字符串";
    


    I . 字符串拼接



    1 . 使用 “$” 进行字符串拼接 : 在单引号或双引号字符串中 , 使用 $变量名称 的方式 , 可以将变量名称代表的内容拼接到字符串中 ;

    String str_3 = "str_1 : $str_1 str_2 : $str_2";
    
    //使用 $ 拼接字符串 : str_1 : 单引号定义字符串 str_2 : 双引号定义字符串
    print("使用 \$ 拼接字符串 : " + str_3);
    

    2 . 使用 “+” 运算符 : 使用 + 运算符 可以拼接字符串 , 该种方式与 Java 类似 ;

    String str_4 = "str_1 : " + str_1 + " , str_2 : " + str_2;
    
    // 打印结果 : 使用 + 拼接字符串 : str_1 : 单引号定义字符串 , str_2 : 双引号定义字符串
    print("使用 + 拼接字符串 : " + str_4);
    

    3 . 使用 ${表达式} 方式 : ${表达式} , 可以将 表达式 内容拼接到字符串中 ;

    String add = "1 + 2 = ${1 + 2}";
    
    // 打印结果 : 使用 ${} 拼接字符串 : 1 + 2 = 3
    print("使用 \${} 拼接字符串 : " + add);
    


    III . 字符串 API 调用



    1 . String 字符串 API 文档 : https://api.dart.dev/stable/2.7.1/dart-core/String-class.html


    2 . 字符串截取 : 需要指定开始位置(包含) 和结束位置(不包含) , 从 0 开始计数 ; 如果只有开始位置 , 那么就会直接截取到最后 ;

    String str_substring = str_1.substring(3, 6);
    //打印结果 : 字符串截取 : 定义字
    print("字符串截取 : " + str_substring);
    

    3 . 获取字符串索引 :

    //  参数中传入子字符串 , 或者正则表达式
    int index = str_1.indexOf("定");
    //打印结果 : index : 3
    print("index : $index");
    


    IV . 字符串 Demo 示例



    1 . 代码示例 :

    import 'package:flutter/material.dart';
    
    class DartType_String extends StatefulWidget {
      @override
      _DartType_StringState createState() => _DartType_StringState();
    }
    
    class _DartType_StringState extends State<DartType_String> {
      @override
      Widget build(BuildContext context) {
    
        stringDemo();
    
        return Container(child: Text('字符串类型'));
      }
    
      //字符串类型 示例
      stringDemo(){
    
        // I . 字符串定义
    
        //字符串定义 : 既可以使用单引号 , 也可以使用双引号
        String str_1 = '单引号定义字符串';
        String str_2 = "双引号定义字符串";
    
        // II . 字符串拼接
    
        // 1 . 字符串拼接 1 : $ 字符串拼接 : 在单引号或双引号字符串中 , 使用 $变量名称 的方式 ,
        //      可以将变量名称代表的内容拼接到字符串中
        String str_3 = "str_1 : $str_1 str_2 : $str_2";
    
        //使用 $ 拼接字符串 : str_1 : 单引号定义字符串 str_2 : 双引号定义字符串
        print("使用 \$ 拼接字符串 : " + str_3);
    
    
        // 2 . 字符串拼接 2 : 使用 "+" 运算符 , 可以拼接字符串 , 该种方式与 Java 类似
        String str_4 = "str_1 : " + str_1 + " , str_2 : " + str_2;
    
        // 打印结果 : 使用 + 拼接字符串 : str_1 : 单引号定义字符串 , str_2 : 双引号定义字符串
        print("使用 + 拼接字符串 : " + str_4);
    
        // 3 . 字符串拼接 3 : 使用 ${表达式} , 可以将表达式内容拼接到字符串中
        String add = "1 + 2 = ${1 + 2}";
    
        // 打印结果 : 使用 ${} 拼接字符串 : 1 + 2 = 3
        print("使用 \${} 拼接字符串 : " + add);
    
    
        // III . 常用的字符串 API
    
        // 1 . 字符串截取
        //  需要指定开始位置(包含) 和结束位置(不包含) , 从 0 开始计数
        //  如果只有开始位置 , 那么就会直接截取到最后
        String str_substring = str_1.substring(3, 6);
    
        //打印结果 : 字符串截取 : 定义字
        print("字符串截取 : " + str_substring);
    
    
        // 2 . 获取字符串索引
        //  参数中传入子字符串 , 或者正则表达式
        int index = str_1.indexOf("定");
    
        //打印结果 : index : 3
        print("index : $index");
    
      }
    
    }
    
    

    2 . 执行结果 :

    使用 $ 拼接字符串 : str_1 : 单引号定义字符串 str_2 : 双引号定义字符串
    使用 + 拼接字符串 : str_1 : 单引号定义字符串 , str_2 : 双引号定义字符串
    使用 ${} 拼接字符串 : 1 + 2 = 3
    字符串截取 : 定义字
    index : 3
    

    在这里插入图片描述

    展开全文
  • MySQL 字符串类型用数字可以查出来 MySQL隐式类型转换 一、发现问题 1、在一次MySQL查询中,某字段为 varchar 字符串类型,传入参数值为 int 数字类型,发现查询的结果和预期的不一致。 如: 某两列 name='11' ,...

              MySQL 字符串类型用数字可以查出来 MySQL隐式类型转换

     

    一、发现问题

    1、在一次MySQL查询中,某字段为 varchar 字符串类型,传入参数值为 int 数字类型,发现查询的结果和预期的不一致。 如: 某两列 name='11' , name = '11aa' where name = 11 , 可以查到 '11' 和 '11aa' 两个结果,这里是错误的;而 where name ='11' ,能得到预期结果。

     

    2、反之,字段为 int 数字类型,传入参数值为 varchar 字符串类型,也能查到数据,同样查询的结果和预期的不一致。如:age=2的数据有2条。where age = 2 , 可以正常查到数据 ; 而 where age = '2aabbcc',查到的数据结果和 where age = 2 是一样的,这里是错误的,应该查不到数据。

     

    二、代码理解

    1、针对【一】中的问题,描述的不好理解,晦涩难懂,下面用代码加以理解,推动理解问题!

    2、在MySQL数据中,创建一个 implicit 表 , 如下: (MySQL version 5.7+)

    SET FOREIGN_KEY_CHECKS=0;
    -- ----------------------------
    -- Table structure for implicit
    -- ----------------------------
    DROP TABLE IF EXISTS `implicit`;
    CREATE TABLE `implicit` (
      `id` varchar(255) NOT NULL COMMENT '编号',
      `name` varchar(255) DEFAULT NULL COMMENT '名称',
      `age` int(11) DEFAULT NULL COMMENT '年龄',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='MySQL Implicit conversion (MySQL 隐式类型转换)';
    
    -- ----------------------------
    -- Records of implicit
    -- ----------------------------
    INSERT INTO `implicit` VALUES ('11', '小明', '2');
    INSERT INTO `implicit` VALUES ('11qq', '小红', '2');
    INSERT INTO `implicit` VALUES ('12', '小新', '54');
    INSERT INTO `implicit` VALUES ('tt11', '小刚', '92');

    3、implicit 表数据如下:

     

     

    三、针对问题进行测试

    1、字段类型是 varchar 字符串,传入参数为 int 数字类型 。

    1.1、-- 字段类型是 varchar ,传入参数是 varchar 【预期正确结果】

    SELECT * 
    FROM implicit a
    WHERE a.id = '11' ; 

     

    1.2、-- 字段类型是 varchar , 传入参数是 int 【错误结果

    SELECT * 
    FROM implicit a
    WHERE a.id = 11 ; 

     

     

    2、字段类型是 int 数字类型,传入参数为 varchar 字符串类型。

    2.1、-- 字段类型是 int类型,传入参数是 int类型 【预期正确结果】

    SELECT * 
    FROM implicit a
    WHERE a.age = 2 ; 

     

    2.2、-- 字段类型是 int类型,传入参数是varchar类型 【错误结果

    SELECT * 
    FROM implicit a
    WHERE a.age = '2aa' ; 

     

    四、问题原因及避免

    1、原因: 当MySQL字段类型和传入条件数据类型不一致时,会进行隐形的数据类型转换(MySQL Implicit conversion

    2、若字符串是以数字开头,且全部都是数字,则转换为数字结果是整个字符串;部分是数字,则转换为数字结果是截止到第一个不是数字的字符为止。 理解: varchar str = "123dafa",转换为数字是123 。 SELECT '123dafa'+1 ; --- 124

    3、若字符串不是以数字开头,则转换为数字结果是 0varchar str = "aabb33" ; 转换为数字是 0 。 SELECT 'aabb33'+100 ; --- 100

     

    4、更多隐式转换规则摘录

    • 两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种情况都不需要做类型转换
    • 两个参数都是字符串,会按照字符串来比较,不做类型转换
    • 两个参数都是整数,按照整数来比较,不做类型转换
    • 十六进制的值和非数字做比较时,会被当做二进制串
    • 有一个参数是 TIMESTAMP 或 DATETIME,并且另外一个参数是常量,常量会被转换为 timestamp
    • 有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较
    • 所有其他情况下,两个参数都会被转换为浮点数再进行比较。

     

    五、问题总结

    1、MySQL 隐式转换问题,隐藏的深,不容易被发现,在进行 delete , update 等操作时,一不小心很容易大问题,从而造成事故。

    2、对于 delete , update 等操作时,建议先使用 select 语句,看看获取的结果和预期的是否一致,再进行操作,相对会更安全一些。

    3、为了便于更好理解,MySQL 隐式转换规则,增加下面sql测试理解。

    3.1、SELECT 'a10'+10 ; -- 10
    SHOW WARNINGS ; -- WARNINGS: Truncated incorrect DOUBLE value: 'a10'
    查看warnings可以看到隐式转化把字符串转为了double类型。但是因为字符串是非数字型的,所以就会被转换为0,因此最终计算的是0+10=10 .
    
    3.2、SELECT '10a'+10 ; -- 20 
    SHOW WARNINGS ; -- WARNINGS: Truncated incorrect DOUBLE value: '10a'
    
    3.3、SELECT 'a'=0 ; -- 1 , 相当于 true 
    SHOW WARNINGS ; -- WARNINGS: Truncated incorrect DOUBLE value: 'a'
    
    3.4、SELECT 'a23423' = 0 ; -- 1 , 相当于 true 
    SHOW WARNINGS ; -- WARNINGS:Truncated incorrect DOUBLE value: 'a23423'
    
    3.5、SELECT '11dafdfwwe'=11; -- 1, 相当于 true 
    SHOW WARNINGS ; -- WARNINGS:Truncated incorrect DOUBLE value: '11dafdfwwe'
    
    3.6、SELECT 11= 11 ; -- 1, 相当于 true 
    SHOW WARNINGS ; -- 无 
    
    3.7、SELECT 'abc'='abc' ; -- 1, 相当于 true 
    SHOW WARNINGS ; -- 无 
    
    3.8、SELECT 'abc'='abc232322' ; -- 0 , 数据类型一样,不会进行转换 
    SHOW WARNINGS ; -- 无 
    
    3.9、SELECT 'a'+'b'; -- 0 , 都转换为0了, 0+0=0 。
    SHOW WARNINGS ; -- WARNINGS: Truncated incorrect DOUBLE value: 'a' , Truncated incorrect DOUBLE value: 'b'
    
    3.10、SELECT 'a'+'b'='c' ; -- 1 ,等价于 0+0=0 --> 0=0=1。
       SHOW WARNINGS ; -- WARNINGS: Truncated incorrect DOUBLE value: 'a' , Truncated incorrect DOUBLE value: 'b' , Truncated incorrect DOUBLE value: 'c'

     

    参考资料: MySQL隐式转化整理

    Mysql 一个字段定义成int类型,查询时传入String,会截取字符串

    https://dev.mysql.com/doc/refman/5.7/en/type-conversion.html

    https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html

     

    展开全文
  • 初识字符串类型

    千次阅读 2017-09-03 10:26:14
    C++中提供了一种新的数据类型——字符串类型(string)。实际上string并不是C++的基本类型,它是在C++标准库中声明的一个字符串类,用这种数据类型可以定义对象,每一个字符串变量都是string类的一个对象。一、字符串...

    C++中提供了一种新的数据类型——字符串类型(string)。实际上string并不是C++的基本类型,它是在C++标准库中声明的一个字符串类,用这种数据类型可以定义对象,每一个字符串变量都是string类的一个对象。

    一、字符串类型:string
    字符串类包含在头文件#include中,因此使用string时必须包含头文件#include。字符串变量必须先定义后使用,定义字符串变量要使用类名string。在定义字符串变量时不需指定长度,它的长度随其中的字符串长度而改变。

    例:string s1; //定义字符串变量s1
    string s2=”hello”; //定义字符串变量s2,同时对其初始化

    二、初始化string类对象的方式
    1、用字符串常量给字符串变量赋值
    例:string s1;
    s1=”hello”; //这点与字符数组不相同

    2、用一个字符串变量给另一个字符串变量赋值
    例:string s1=”hello”;
    string s2;
    s2=s1; //这一点与字符数组也有所不同

    3、可以对字符串变量中某一字符进行操作
    例:string s1=”Then”;
    s1[2]=’a’; //修改序号为2的字符,修改后s1就变为than
    字符串常量以’\0’作为结束符,但将字符串常量存放到字符串变量中时,只存放字符串本身而不包括’\0’。

    三、string类型的常见操作
    1、字符串复制用赋值号
    例:s1=s2; //将s2赋给s1

    2、字符串连接用加号
    例:string s1=”hello “;
    string s2=”world”;
    string s3=s1+s2;
    输出s3就是hello world。注意:在字符串连接时,要连接的字符串中至少有一个是字符串变量。不能全部都是字符串常量。

    3、字符串比较直接用关系运算符
    可以直接用==(等于)、>(大于),<(小于),>=(大于等于),<=(小于等于),!=(不等于)直接进行比较,其返回值是bool类型。

    四、字符串数组
    可以用string定义字符串数组。
    例:string s1[3]={“zhang”,”li”,”zhao”};
    注意:
    1、字符串数组中的每一个元素都相当于一个字符串变量。
    2、与二维字符数组不同的是,字符串数组并不要求每个字符串元素具有相同的长度。对于每一个字符串元素而言,它的长度是可以变化的。
    3、每一个字符串元素中只包含字符串本身的字符而不包含’\0’。
    4、字符串数组的每一个元素存放的都是一个字符串的地址。

    展开全文
  • Python数据类型 1、 数字类型,int ,float,long,complex 整形、浮点型、长整形、复合类型 2、字符串类型 string 3、字符串索引,切片 数据类型间的转换 格式化字符串 字符串格式化符号

    Python数据类型之数字类型、字符串类型

    在讲Python基本数据类型前,我们先来看一下Python中有3个基本函数,对我们以后的学习会有很大的帮助。

    type()

    判断类型的方法

    >>> a = 1
    >>> type(a)
    <type 'int'>
    >>> list1 = []
    >>> st = 'sdf'
    >>> type(st)
    <type 'str'>
    >>> type(list1)
    <type 'list'>
    dir()

    列出某个类型或模块中所有的方法,参数可以是类型type或类型的对象!

    实例:

    列出字符串数据类型所有的方法

    >>> str1 = 'ad'
    >>> dir(str1) 或 dir("")
    ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
    format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
    slice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mo
    d__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
     '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook
    __', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center',
     'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index
    ', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper',
    'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', '
    rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', '
    strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
    列出列表类型所有的方法
    >>> list1 = []
    >>> dir(list1) 或 dir([])
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli
    ce__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getit
    em__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
     '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__r
    educe__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__'
    , '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'a
    ppend', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
    ]
    对于列出的这些方法中,我们主要关注的就是没有用下划线定义的方法。

    help()
    help函数是python的一个内置函数,无需import,任何时候都可以直接被使用。
    在使用python来编写代码时,会经常使用python自带函数或模块,但是有时候会对一些函数或是模块的用途不是很清楚,这时候就可以使用help函数来查看帮助。
    这里要注意下,help()函数是查看函数或模块用途的详细说明,而dir()函数是查看函数或模块内的操作方法都有什么,输出的是方法列表。
    实例:

    查看dir函数的具体用法

    >>> help(dir)
    Help on built-in function dir in module __builtin__:
    
    dir(...)
        dir([object]) -> list of strings
    
        If called without an argument, return the names in the current scope.
        Else, return an alphabetized list of names comprising (some of) the attribut
    es
        of the given object, and of attributes reachable from it.
        If the object supplies a method named __dir__, it will be used; otherwise
        the default dir() logic is used and returns:
          for a module object: the module's attributes.
          for a class object:  its attributes, and recursively the attributes
            of its bases.
          for any other object: its attributes, its class's attributes, and
            recursively the attributes of its class's base classes.
    
    查看list模块中count函数的用法

    >>> help(list.count)
    Help on method_descriptor:
    
    count(...)
        L.count(value) -> integer -- return number of occurrences of value
    
    查看字符串模块中的index函数的用法

    >>> str1 = 'asd'
    >>> help(str1.index)
    Help on built-in function index:
    
    index(...)
        S.index(sub [,start [,end]]) -> int
    
        Like S.find() but raise ValueError when the substring is not found.

    1、 数字类型

    python中数字类型有分为如下几种类型:

    • 整型 - int
    • 长整型 - long
    • 浮点型 - float
    • 复数型 - complex

             Python是一种弱类型语言,所以变量都是不需要提前声明,可以直接拿来使用。

    1)整型int表示的范围是-2147483648到2147483647,如12,600,-120等。

          int范围的示例:

    >>>num = 567
    >>>print num
    567
    >>>type(num)  #查看num的数据类型
    <type'int'>
    #当num变量的值超过int能表示的范围后,num的数据类型就自动被切换成长整形。
    >>>num = 1234567891234567897890678956789
    >>>type(num)
    <type'long'>    
    #直接定义一个长整形,后面要以L或l标示
    >>>num1 = 123L
    >>>type(num1)
    <type'long'>

    2)浮点型

             比如:1.2,   12342.56, 0.0等。

             变量在定义赋值时,只要给赋值小数,该变量就被定义成浮点型。        

    >>>type(f)
    <type'float'>
    >>>f / 2
    6.25

    3)复数类型

           Python对复数提供内嵌支持,这也是python的亮点。如1.26j,8.1e-21j

           Python中复数的虚部用字母j表示。示例如下:     

    >>>cc = 1.56j
    >>>type(cc)
    <type'complex'>

          Python的复数类型可以用在抛物线的计算中。

    2、字符串String

     字符串是由数字、字母、下划线组成的一串字符。

    字符串的字符串的定义:

    #普通字符串的定义
    >>> s1 = 'adf\nsd'
    >>> print s1
    adf
    sd
    >>> type(s1)
    <type 'str'>
    
    #原生字符串的定义
    >>> s2 = r'asd\n23'
    >>> print s2
    asd\n23
    >>> type(s2)
    <type 'str'>
    
    #Unicode字符串的定义(只需在定义字符串时前面加一个字母 u)
    >>> s3 = u'aer23'
    >>> print s3
    aer23
    >>> type(s3)
    <type 'unicode'>

    原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母“ r ”(不区分大小写)以外,与普通字符串有着几乎完全相同的语法。

    python接收单引号(')、双引号(")、三引号(''' / """)来表示字符串,引号的开始与结束类型必须一致,也就是说前面是单引号,后面也必须是单引号。其中三引号可以由多行组成,这也是编写多行文本的常用语法,经常用于处理文档字符串,但在文件的特定地点,会被当做注释来处理。示例如下:         

    >>>str = "This is the first python program!"
    >>>print str
    Thisis the first python program!
    >>>type(str)
    <type'str'>
    >>>str1 = 'first'
    >>>type(str1)
    <type'str'>
    >>>str2 = '''三引号'''
    >>>print str2
    三引号
    >>>type(str2)
    <type'str'>

             但会出现这种情况,字符串中本身就含有单引号或者双引号或者三引号时,那么我们定义字符串的时候,就必须避免使用跟字符串本身一样的引号类型来定义字符变量,或者用反斜杠(\)将字符串中的引号进行转义,否则就会报错。示例如下:       

    >>>st = "this is 'ss'"
    >>>print st
    thisis 'ss'
    >>>st1 = 'this is "bb"'
    >>>print st1
    thisis "bb"
    >>>st2 = "this is \"cc\""
    >>>print st2
    thisis "cc"
    #当我们想进行换行打印时,又该怎么做呢?
    >>>st2 = "this\nis\ncc"
    >>>print st2
    this
    is
    cc

             在定义变量时,在字符串中间加一换行符(\n),print在打印时,加了\n处就会被折行打印。但是这样的格式打印,有时候编写起来会比较费劲,此时我们的三引号就派上用场了。如:       

    >>>st3 = ''' this
    ...             is
    ...             the
    ...             last
    ...   one
    ...'''
    >>>print st3
    this
                      is
                      the
                      last
    one

             看到打印的结果了吗?查看一下st3变量的内容       

    >>>st3
    'this \n\t\tis \n\t\tthe\n\t\tlast\n one\n'

             它会自动在字符串中记录我们编写的格式,并添加相应的表示格式的符号。

             字符串、列表、元组都被称为序列类型的数据。什么叫序列类型的数据呢?后续将会介绍。

             作为一个字符串,其实它里面的每一个字符都有自己独立的空间,那就是说我们可以直接取出单个的字母或者某一个子串。每一个字母都会有一个相应的索引(所谓索引就是指向该字母存放空间的地址,这个值是唯一的),并且这个索引值是从0开始的,类似于java语言中的数组。     

    #取单个的字符
    >>>str = "abcdefg"
    >>>str[0]  #输出字符串中的第一个字符
    'a'
    >>>str[1]  #输出字符串中的第二个字符
    'b'

             python的字符串还支持一次取多个字符,这就涉及到从字符串列表中取值顺序的问题了,常见的有两种取值顺序:

             1、从左到右取,最大范围是字符串的长度减1,默认的索引从0开始。

             2、从右到左取,最大的范围字符串开头,默认索引从-1开始。

             取子串时,可以通过[头下标:尾下标],就可以截取相应的字符串(也叫字符串的切片),下标可以为整数或负数,可以为空表示取到头或尾(注:这种取法只包括左边界,不包括右边界)。比如:  

    >>>str = "abcdefg"
    >>>len(str)  #计算一下字符串的长度
    7
    >>>str[2:4]  #取下标为2到4但不包括下标为4的子串
    'cd'
    >>>str[1:]  #从下标1开始取到尾
    'bcdefg'
    >>>str[:5]  #从开头,也就是下标为0开始,取到下标为5的子串,但不包括5
    'abcde'
    >>>str[::2]  #从头开始到结尾以步长为2开始取值
    'aceg'
    >>>str[-1]  #取最后一个字符
    'g'
    >>>str[-4:-2] #从倒数第4个开始取到倒数第2个,但不包括倒数第二个位置的元素
    'de'
    >>>str[-4:-2:1] #从左往右,-4开始以步长为1取到-2,,最后一个数的正负是来控制方向的
    'de'
    >>>str[-2:-5:-1]  #从右往左,-2开始以步长为1取到-5,,最后一个数的正负是来控制方向的
    'fed'
    
    
    加号(+)是字符串的连接运算符,星号(*)是重复操作。比如:
    
    
    >>>str = "abcdefg"
    >>>print str * 2  #将字符串输出两次
    abcdefgabcdefg
    >>>print str[2] + str[0]  #输出连接后的字符串
    ca
    >>>print str + "python"  #输出连接后的字符串
    abcdefgpython

    数据类型转换

    float():变浮点型 
    >>> float('12')
    12.0
    int():变成整型
    >>> int(1.6)
    1
    int(str,base) :变成base进制整型数
    >>> int('11',2)
    3
    long(str) :变成长整型
    >>> long(123)
    123L
    >>> long('123')
    123L
    
    long(str,base) :变成base进制长整型
    >>> long('23',8)
    19L
    <pre name="code" class="python">tuple(s) :将序列 s 转换成一个元组
    >>> s = 'asdf'
    >>> tuple(s)
    ('a', 's', 'd', 'f')
    >>> list1 = [1,2,3]
    >>> tuple(list1)
    (1, 2, 3)
    
    
    <pre name="code" class="python">list(seq):将序列seq转换成一个列表
    >>> s = 'asdf'
    >>> list(s)
    ['a', 's', 'd', 'f']
    >>> tuple1 = (1,2,3)
    >>> list(tuple1)
    [1, 2, 3]
    
    
    <pre name="code" class="python">dict(seq):创建一个字典,seq必须是一个序列(key,value)元组。
    >>> list1 = [(1,2),(2,3)]
    >>> dict(list1)
    {1: 2, 2: 3}
    
    
    字符串的格式化(注意其转义字符,大多如C语言的)
    str_format % (参数列表) :参数列表是以tuple的形式定义的,即不可运行中改变
    >>> num = 'aa'
    >>> print "this is %s" %(num)
    this is aa
    

    Python字符串格式化符号:

    %c 格式化字符及其ASCII码
    %s 格式化字符串
    %d 格式化整数
    %u 格式化无符号整型
    %o 格式化无符号八进制数
    %x 格式化无符号十六进制数
    %X 格式化无符号十六进制数(大写)
    %f 格式化浮点数,可指定小数点后的位数
    %e 用科学计数法格式化浮点数
    %E 作用同%e,用科学计数法格式化浮点数
    %g %f 和%e的简写
    %G %f 和 %E的简写
    %p 用十六进制数格式化变量的地址


      

     

     

     

     

     

     

    展开全文
  • 浅谈char字符类型和string字符串类型

    万次阅读 多人点赞 2018-01-26 20:58:49
    char也就是字符型数据定义,string也就是字符串类型数据定义,乍一看他们很想,一个是字符一个是字符串,字符串不就是字符串起来得到的吗?但是事实上,字符串即是“字符”串起来也不是“字符”串起来,听起来是不是...
  • SystemVerilog——字符串类型

    千次阅读 2019-09-11 10:04:30
    类似C++的std::string类型,SystemVerilog字符串类型支持很多操作和函数。 SytemVerilog字符串类型支持的操作和方法: 一些有用的系统任务 SytemVerilog字符串类型支持的操作和方法 操作 ...
  • 数字和字符串类型

    千次阅读 2017-07-27 22:19:48
    六种类型:数字类型,字符串类型,元祖类型,列表类型,文件类型,字典类型。 数字类型包括整数类型,浮点数类型,复数类型。 1.整数类型: 1010,99,-45(十进制) 0x9a,-0X89(0x,0X开头表示16进制数) 0b010,-0...
  • 字符串类型 常见操作方法

    万次阅读 2020-06-03 18:15:44
    字符串是以 双引号 或 单引号 包起来的,叫字符串字符串中取值 根据索引(下标)进行取值: name="abcdef" print(name[0])
  • MySQL数据类型--字符串类型

    万次阅读 2016-03-22 12:05:17
    字符串类型是在数据库中存储字符串的数据类型,字符串类型包括char,varchar,text,enum和set。 OK,我们来一个一个的看下上面提到的几种类型。 char类型和varchar类型 char类型和varchar类型都是在...
  • Python字符串类型转换函数

    千次阅读 2015-08-20 09:38:13
    字符串类型转换函数字符串转整型、浮点型等,都是有具体的函数的,但是这些函数都是string模块中的,所以在使用的时候,需要引入string模块(import string)。但是这种转换的字符串必须是数字型的字符串,字母、...
  • redis 查看字符串Value数据类型

    千次阅读 2019-12-27 16:42:52
    1. redis中存储的字符串到底是什么数据类型 测试如下: 10.38.162.118:7004> set quickapp_test 123 OK 10.38.162.118:7004> OBJECT type quickapp_test (error) ERR Syntax error. Try OBJECT ...
  • BLOB类型转换成字符串类型

    千次阅读 2019-10-29 11:31:18
    BLOB类型转换成字符串类型blob_to_varchar2 一开始遇到这个问题的时候我走错了方向,一直没有解决,后来再网上找到了一个函数,亲测有效。 blob_to_varchar2 Create Or Replace Function Blob_To_Varchar (Blob_In ...
  • string字符串类型转换为number数字类型 1、五种方法 Number() 、parseInt()、 parseFloat()、new Number() 、*(/) 2、差别 第一个函数,即转型函数 Number() 可以用于任何数据类型,而另两个函数则专门用于把...
  • Python字符串类型及操作

    千次阅读 2020-03-21 12:58:20
    1.字符串类型的表示 (一)字符串: 由0个或多个字符组成的有序字符序列。 字符串由一对单引号或一对双引号来表示,例如:"请输入带有符号的温度值","Python"这些都是字符串。 (当然我们也可以使用一对三单...
  • postgreSQL数字与字符串类型转换

    万次阅读 2019-07-10 16:39:47
    数字转字符串 select cast(123 as VARCHAR); 字符串转数字 select cast('123' as INTEGER); 以此类推,应该也可以转换为其他数据类型,欢迎留言补充。 ...
  • 字符型 没有,推荐使用byte或int 字母一个字节,汉字3个字节 存储:字符->码值(数字)->二进制->保存 直接输出不行 %c 字符串型 由字节组成 直接输出可以
  • 我的有个字符串比如String a = “1234”,我想让他变成String[] b = {"1","2","3","4"} 我需要一个字符串里的每个字符(别的...我现在是通过 a.tocharArray 将字符串a拆分获取到char类型数组,怎么改成String类型
  • 字符串 https://ww2.mathworks.cn/help/matlab/characters-and-strings.html 创建字符向量 通过将字符序列括在单引号中来创建一个字符向量。 chr = 'Hello, world' chr = 'Hello, world' 字符向量为 char 类型的...
  • C语言12之什么是字符串类型

    万次阅读 多人点赞 2018-03-04 15:55:08
    1.C语言的字符串类型1.1 C语言没有原生字符串类型1)很多高级语言像java、C#等就有字符串类型,有个String来表示字符串,用法和int这些很像,可以String s1 = "linux";来定义字符串类型的变量。2)C语言没有...
  • 数值类型和字符串类型互相转换 关于Dart 语言的基础学习记录 Dart 官方网站 数值类型 声明变量关键字 变量说明 int 整数类型 double 浮点数类型 字符串类型 声明变量关键字 变量说明 String ...
  • 1、在修改保存之前,有一个重要的步骤,那就是回填数据,其他一些在数据库里面本身就是以字符串类型保存的数据回填还好,直接回填就行,不需要再进一步处理,反而是日期类型的数据就要麻烦得多,要进行数据转换,...
  • $arr是字符串类型,单引号中是数组语法,如何将该字符串转换为数组类型? ``` $arr = 'array("张三"=>"1988","李四"=>"1990","王五"=>"1989")'; foreach($arr as $key => $value){ echo "姓名:".$key."-年份:".$...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,443,356
精华内容 977,342
关键字:

怎样查看字符串的类型