string 订阅
string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。 [1-2] 展开全文
string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。 [1-2]
信息
属    性
编程语言
外文名
String
所属领域
计算机
中文名
字符串
string基本信息
String就是C++、java、VB等编程语言中的字符串,用双引号引起来的几个字符,如"Abc","一天".
收起全文
精华内容
下载资源
问答
  • C++编程语言中stringstream类介绍

    万次阅读 多人点赞 2018-09-10 23:20:54
    本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法。 1 概述 <sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来...

    本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法。

    1 概述

    <sstream> 定义了三个istringstreamostringstream stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。

    <sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf 方式),避免了缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符号的问题。简单说,相比 C 编程语言库的数据类型转换,<sstream> 更加安全、自动和直接。

    2 示例代码

    2.1 数据类型转换

    这里展示一份示例代码,介绍将 int 类型转换为 string 类型的过程。

    示例代码(stringstream_test1.cpp)的内容如下:

    #include <string>
    #include <sstream>
    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    
    int main()
    {
        stringstream sstream;
        string strResult;
        int nValue = 1000;
    
        // 将int类型的值放入输入流中
        sstream << nValue;
        // 从sstream中抽取前面插入的int类型的值,赋给string类型
        sstream >> strResult;
    
        cout << "[cout]strResult is: " << strResult << endl;
        printf("[printf]strResult is: %s\n", strResult.c_str());
    
        return 0;
    }
    

    编译并执行上述代码,结果如下:

    2.2 多个字符串拼接

    本示例介绍在 stringstream 中存放多个字符串,实现多个字符串拼接的目的(其实完全可以使用 string 类实现),同时,介绍 stringstream 类的清空方法。

    示例代码(stringstream_test2.cpp)的内容如下:

    #include <string>
    #include <sstream>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        stringstream sstream;
    
        // 将多个字符串放入 sstream 中
        sstream << "first" << " " << "string,";
        sstream << " second string";
        cout << "strResult is: " << sstream.str() << endl;
    
        // 清空 sstream
        sstream.str("");
        sstream << "third string";
        cout << "After clear, strResult is: " << sstream.str() << endl;
    
        return 0;
    }
    

    编译并执行上述代码,结果如下:

    从上述代码执行结果能够知道:

    • 可以使用 str() 方法,将 stringstream 类型转换为 string 类型;
    • 可以将多个字符串放入 stringstream 中,实现字符串的拼接目的;
    • 如果想清空 stringstream,必须使用 sstream.str(""); 方式;clear() 方法适用于进行多次数据类型转换的场景。详见示例 2.3。

    2.3 stringstream的清空

    清空 stringstream 有两种方法:clear() 方法以及 str("") 方法,这两种方法对应不同的使用场景。str("") 方法的使用场景,在上面的示例中已经介绍过了,这里介绍 clear() 方法的使用场景。

    示例代码(stringstream_test3.cpp)的内容如下:

    #include <sstream>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        stringstream sstream;
        int first, second;
    
        // 插入字符串
        sstream << "456";
        // 转换为int类型
        sstream >> first;
        cout << first << endl;
    
        // 在进行多次类型转换前,必须先运行clear()
        sstream.clear();
    
        // 插入bool值
        sstream << true;
        // 转换为int类型
        sstream >> second;
        cout << second << endl;
    
        return 0;
    }

    编译并执行上述代码,结果如下:

    注意:在本示例涉及的场景下(多次数据类型转换),必须使用 clear() 方法清空 stringstream,不使用 clear() 方法或使用 str("") 方法,都不能得到数据类型转换的正确结果。下图分别是未使用 clear() 方法、使用 str("") 方法代替 clear() 方法时的运行结果:

    展开全文
  • String、StringBuffer和StringBuilder的区别

    万次阅读 多人点赞 2019-06-16 10:31:19
    String、StringBuffer和StringBuilder的区别: 文章目录StringStringBufferStringBuilderStringBuffer是如何实现线程安全的呢?Java9的改进 String   String类是不可变类,即一旦一个String对象被创建以后,包含在...

    String、StringBuffer和StringBuilder的区别:

    String

      String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。

      这个是String类的解释,之前小咸儿看到这个情况,不能理解上述的解释,如下

    String a = "123";
    a = "456";
    // 打印出来的a为456
    System.out.println(a)
    

      看到这里,小咸儿不明白了,这不是明明已经对他进行修改了吗?为什么还说他是一个不可变类呢?

      经过小咸儿和小伙伴们的学习,明白String类不可变在哪里体现出来的,接下来就看一张上述a对象的内存存储空间图
    在这里插入图片描述

      可以看出来,再次给a赋值时,并不是对原来堆中实例对象进行重新赋值,而是生成一个新的实例对象,并且指向“456”这个字符串,a则指向最新生成的实例对象,之前的实例对象仍然存在,如果没有被再次引用,则会被垃圾回收。

    StringBuffer

      StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。

    StringBuffer b = new StringBuffer("123");
    b.append("456");
    // b打印结果为:123456
    System.out.println(b);
    

      在看一下b对象的内存空间图:
    在这里插入图片描述

      所以说StringBuffer对象是一个字符序列可变的字符串,它没有重新生成一个对象,而且在原来的对象中可以连接新的字符串。

    StringBuilder

      StringBuilder类也代表可变字符串对象。实际上,StringBuilder和StringBuffer基本相似,两个类的构造器和方法也基本相同。不同的是:StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。

    StringBuffer是如何实现线程安全的呢?

    StringBuffer类中实现的方法:

    在这里插入图片描述

    StringBuilder类中实现的方法:

    在这里插入图片描述

      由此可见,StringBuffer类中的方法都添加了synchronized关键字,也就是给这个方法添加了一个锁,用来保证线程安全。

    Java9的改进

      Java9改进了字符串(包括String、StringBuffer、StringBuilder)的实现。在Java9以前字符串采用char[]数组来保存字符,因此字符串的每个字符占2字节;而Java9的字符串采用byte[]数组再加一个encoding-flag字段来保存字符,因此字符串的每个字符只占1字节。所以Java9的字符串更加节省空间,字符串的功能方法也没有受到影响。

    展开全文
  • 解决python中TypeError: not enough arguments for format string

    万次阅读 多人点赞 2018-06-05 14:02:22
    TypeError: not enough arguments for format string将参数用括号括起后(如下所示),问题就解决了。def a(x,y): print("%s : %s "%(x,y))下面是操作中的截图。总结:在学习python时,要注意下pyt...
    def a(x,y):
    	print("%s : %s "%x,y)

    如上代码,我定义了个含两个参数的函数,传参时报错如下。

    TypeError: not enough arguments for format string

    将参数用括号括起后(如下所示),问题就解决了。

    def a(x,y):
    	print("%s : %s "%(x,y))


    下面是操作中的截图。

    总结:在学习python时,要注意下python版本

    python3.0以后,在print后要加括号,

    对一般输出:

    python2要这么写

    print'helloworld' 

    python3.x要这么写

    print('helloworld')

    格式化输出:

    python2要这么写

    def a(x,y):
    	print("%s : %s "%x,y)

    python3.x要这么写

    def a(x,y):
    	print("%s : %s "%(x,y))

    展开全文
  • 发生这一错误的主要原因是Controller类中需要接收的是Date类型,但是在页面端传过来的是String类型,最终导致了这个错误。 这里提供两种解决方案,一种是局部转换,一种是全局转换。 一.局部转换 @Controller ...

    关注微信公众号“假装正经的程序员”,回复“日期转换”即可获取解决方案

    发生这一错误的主要原因是Controller类中需要接收的是Date类型,但是在页面端传过来的是String类型,最终导致了这个错误。

    这里提供两种解决方案,一种是局部转换,一种是全局转换。

    <form action="login.do" method="post">
    		<input type="text" name="birthday" value="2017-07-12 22:04:00">
    		<input type="submit" value="提交">
    	</form>


    一.局部转换

    @Controller
    public class UserController{
    	
    	@RequestMapping(value="/login.do")
    	public String login(String username,Date birthday){
    		System.out.println("________");
    		return "";
    	}
    
            //只需要加上下面这段即可,注意不能忘记注解
    	@InitBinder
    	public void initBinder(WebDataBinder binder, WebRequest request) {
    		
    		//转换日期
    		DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));// CustomDateEditor为自定义日期编辑器
    	}
    }


    二.全局转换

    1.创建CustomDate类实现WebBindingInitializer

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.springframework.beans.propertyeditors.CustomDateEditor;
    import org.springframework.web.bind.WebDataBinder;
    import org.springframework.web.bind.support.WebBindingInitializer;
    import org.springframework.web.context.request.WebRequest;
    
    /**
     * @作者:JackHisen(GWD)
     * @项目名:shoppingmall
     * @时间:2017-7-12 下午10:39:10
     * @version 1.0
     */
    public class CustomDate implements WebBindingInitializer{
    
    	@Override
    	public void initBinder(WebDataBinder binder, WebRequest request) {
    		// TODO Auto-generated method stub
    		//转换日期
    		DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    	}
    }


    2.在Spring-MVC.xml中配置日期转换

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
         http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    	<context:component-scan base-package="com.gwd.shopping" use-default-filters="false">
    		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    	</context:component-scan>
    	
    	<!-- 日期转换 -->
    	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    		<property name="webBindingInitializer">
    			<bean class="com.gwd.shopping.core.web.CustomDate"/>
    		</property>
    	</bean>
    	
    	<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/WEB-INF/back_page/"/>
    		<property name="suffix" value=".jsp"/>
    	</bean>
    </beans>

    展开全文
  • String.format()的详细用法

    万次阅读 多人点赞 2018-09-03 11:38:55
    问题 ...地区 上海 为可变的string数据  年龄 21 为可变的int数据  性别 男 为可变的string数据  遇到这种情况你们是怎么样解决的呢?把这段字符串保存在常量类里吗?不!我们应该遵循Google的开发...
  • TypeError: not all arguments converted during string formatting 举例 例如: &amp;gt;&amp;gt;&amp;gt; strs=(1,2,3,4) #创建一个集合 &amp;gt;&amp;gt;&amp;gt; ...
  • C++中的String的常用函数用法总结

    万次阅读 多人点赞 2018-08-27 09:15:36
    string的构造函数的形式: string str:生成空字符串 string s(str):生成字符串为str的复制品 string s(str, strbegin,strlen):将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值 ...
  • 深入理解Java String

    万次阅读 多人点赞 2018-06-28 21:15:55
    在Java语言了中,所有类似“ABC”的字面值,都是String类的实例;String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较、查找、截取、大小写转换等操作;Java语言为“+”连接符(字符串连接符)以及...
  • C++中的string类用法简介

    万次阅读 多人点赞 2019-08-21 17:21:17
    本文主要介绍C++中的string类的常见用法。 1. 概述 string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行string操作。同时,C++的算法库...
  • Java String转Date

    万次阅读 2019-01-03 11:00:46
    接口之间数据的传输都是字符串,现在需要把数据存储在数据库中,刚好我们使用了JPA,定义对象的时候将日期定义为了Date,所以不得不把String转为Date对象。具体如下: SimpleDateFormat simpleDateFormat = new ...
  • String,StringBuffer与StringBuilder的区别

    万次阅读 多人点赞 2018-08-31 22:22:12
    一、Java String 类——String字符串常量 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 需要注意的是,String的值是不可变的,这就导致每次对String的...
  • C++ 数值与 string 的相互转换

    万次阅读 多人点赞 2016-03-18 22:11:54
    使用函数模板将基本数据类型(整型、字符型、实型、布尔型)转换成string。//ostringstream对象用来进行格式化的输出,常用于将各种类型转换为string类型 //ostringstream只支持&amp;lt;&amp;lt;操作符 ...
  • String类中split()方法的使用

    万次阅读 多人点赞 2018-09-25 16:24:45
    String类中split()方法的使用 今天在在使用split方法时,发现split()方法很怪异的现象,查询了官方文档和各种资料,总结如下 官方文档是这么介绍的: 大致意思就是 在给定的正则表达式来分割该字符串.此方法...
  • stringstringstream用法

    万次阅读 多人点赞 2017-09-23 10:04:03
    stringstringstream用法总结
  • 字符串中string str=null和string str=""和string str=string.Empty的区别 string.Empty相当于“”,Empty是一个静态只读的字段。 string str="" ,初始化对象,并分配一个空字符串的内存空间 string str=null,初始化...
  • Java 如何将String转化为Int

    万次阅读 多人点赞 2018-03-28 10:02:16
    在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换. 例1: 1 2 3 4 5 6String str = "123"; try {  int a = ...
  • List转换成String字符串三种方式

    万次阅读 热门讨论 2019-08-15 11:58:34
    List转换成String字符串思路分析: 1.List转化成String[],再通过String[]数组遍历拼接成String字符串; 2.List转化成String存到StringBuffer中,再通过StringButter中的append()方法拼接成String字符串; 注意:...
  • String数组的创建

    万次阅读 2018-10-06 10:29:05
    string数组的定义有三种写法: String[] arr = new String[10]; //创建一个长度为10的String 类型数组。 String arr[] = new String[10]; String arr[] = {"张三","李四"}; 前面两种写法是一样的,可以...
  • String用法详解

    万次阅读 多人点赞 2018-04-05 16:15:51
    string类声明string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍。 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心...
  • String中的compareTo()方法

    万次阅读 2021-02-26 13:31:05
    String类中的compareTo()方法将返回两个字符串对象的比较结果,若相等,返回0。不相等时,从两个字符串第1个字符开始比较,返回第一个不相等的字符差;另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回...
  • TypeError: string indices must be integers

    万次阅读 多人点赞 2019-09-29 16:01:40
    Python3报错:TypeError: string indices must be integers 问题如下图所示: 原因在于for循环中的i代表String类型变量,而List中的i代表Int类型变量,二者冲突,导致出错。 ...
  • 简化 java.lang.String 源码

    万次阅读 2020-09-25 14:09:17
    public final class String implements java.io.Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc { @java.io.Serial private static final long serialVersion
  • Java技术——你真的了解String类的intern()方法吗

    万次阅读 多人点赞 2016-08-23 16:40:53
    String str1 = new String("SEU")+ new String("Calvin"); System.out.println(str1.intern() == str1); System.out.println(str1 == "SEUCalvin"); 本人JDK版本1.8,输出结果为...
  • Java引用数据类型String详解

    万次阅读 2020-07-02 23:54:44
    Java引用数据类型(String)引用数据类型概述引用数据类型与基本数据类型的差别(举例说明) 引用数据类型概述 说到引用数据类型,那么何为引用数据类型? 引用类型,都可以用null值作为值,也就是说可以在初始化的...
  • String转化为String数组

    万次阅读 2018-09-25 16:52:42
    今天做项目遇到个问题,前台传给我一个String数组,但是我这儿接收的时候都是是String类型,那么就需要将String转为String数组 public class test { public static void main(String[] args) { String pcArray ...
  • JVM系列之:String.intern和stringTable

    万次阅读 2020-07-26 11:25:57
    文章目录简介intern简介intern和字符串字面量常量分析intern返回的String对象分析实际的问题G1中的去重功能总结 简介 StringTable是什么?它和String.intern有什么关系呢?在字符串对象的创建过程中,StringTable有...
  • 这道题目的答案是:不一样 先看一下在代码中的结果 不一样的原因很简单,因为他们不是同一个对象。 ...String str="i";...这句话的意思是把“i”这个值在内存中的地址赋给str,如果再有...而String str2 = new St...
  • c++中string的几种赋值方法

    万次阅读 2017-05-22 11:50:48
    在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作 c++可以赋一个比现有字符更长的字符串而C不可以#include "stdafx.h" #include #include#include"string"...
  • String,StringBuffer与StringBuilder的区别??

    万次阅读 多人点赞 2007-01-24 11:56:00
    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String ...
  • C++ string

    千次阅读 2021-04-15 21:29:56
    C++ stringstring 的初始化 ​ 使用 string 类要导入头文件 #include <string>,string 类是模板类 typedef basic_string<char> string; 从 basic_string 类模板实例化生成的。string 类有多种构造...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,707,338
精华内容 4,682,935
关键字:

string