java string对象上的操作,常见的用法你知道吗

目录
  • string
  • string对象上的操作
    • 1.判断是否为空
    • 2.size()/length();
    • 3.s[n]
    • 4.s1+s2
    • 5.s1 = s2
    • 6.s1 == s2
    • 7. s1 != s2
    • 8. s.c_str()
    • 9.相加""+''
    • 10.范围for
  • 总结

string

C语言中,一般使用字符数组来表示字符串

	char str[100] = "I love China";

C++中,也可以用到string类型来表示字符串,string和字符数组之间还可以相互转换,string类型里提供了更多操作字符串的方法,string用起来会更加方便

string也位于std命名空间中, 方便使用可以加: using namespace std;

头文件:

#include < string >

常用方法:

	#include <string>

	string s1; //默认初始化, s1 = "", 代表一个空串,里边没有字符
	string s2 = "I love China";  //把字符串拷贝到s2代表的一段内存中, 拷贝时不包括末尾的'\0'.
	string s3("I love China"); //另一种写法, 同2
	string s4 = s2;  //拷贝s2到s4中, s2,s4两块不同内存

	int num = 6;
	string s5(num, 'a'); //aaaaaa  , s5初始化为连续num个字符'a'
	//这种方式不推荐, 因为会在系统内部创建临时对象

string对象上的操作

1.判断是否为空

返回布尔类型

	string s1;
	if (s1.empty())
	{
		cout << "s1为空" << endl;
	}

2.size()/length();

返回类型/字符数量

	string s1;
	cout << s1.size() << endl;       //0
	cout << s1.length() << endl;   //0

	string s2 = "I love China";
	cout << s2.size() << endl;      //12
	cout << s2.length() << endl;  //12

	string s3 = "你好";
	cout << s3.size() << endl;      //4
	cout << s3.length() << endl;  //4

3.s[n]

返回s中的第n个字符, n代表位置, 从0开始, 到size()-1

	string s3 = "I love China";
	if (s3.size() > 4)
	{
		cout << s3[4] << endl;
		s3[4] = 'w';
	}
	cout << s3 << endl;
	//输出
	//v
	//I lowe China

4.s1+s2

字符串连接

	string s1 = "abcd";
	string s2 = "hijk";
	cout << s1 + s2 << endl;  //abcdhijk

5.s1 = s2

赋值

	string s1 = "abcd";
	string s2 = "ab";
	s1 = s2;
	cout << s1 << endl;
	//输出
	//ab

6.s1 == s2

判断是否相等

注意:大小写敏感

	string s1 = "ab";
	string s2 = "ab";
	if (s1 == s2)
	{
		cout << "相等" << endl;
	}

7. s1 != s2

同上反例

8. s.c_str()

返回一个字符串s中的内容指针,返回是一个指向正规C字符串的常量指针, 所以是以'\0'结尾的.

	string s1 = "abc";

	//返回"abc"的内存指针
	const char* p = s1.c_str();
	char str[100];
	strcpy_s(str, sizeof(str), p);
	cout << str << endl;

9.相加""+''

例:

	string s1 = "abc";
	string s2 = "abC";

	cout << s1 + " and " + s2 + 'D' << endl;//abc and abCD

10.范围for

c11中范围for: 能够遍历序列中的每一个元素

	string s1 = "I love China";
	for (auto c : s1)    //char  auto自动推断
	{
		cout << c;   //I love China
	}

例2:

	string s1 = "I love China";
	for (auto &c : s1)
	{
		//toupper() 小写转大写, 大写没变化
		//tolower() 大转小
		c = toupper(c);  //因为c是一个引用, 所以这相当于改变s1中的值
	}
	cout << s1;   //I LOVE CHINA

总结

本片文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • java对象转化成String类型的四种方法小结

    目录 方法1:采用 Object#toString()方法 方法2:采用类型转换(String)object方法 方法3:采用 String.valueOf(Object) 方法 方法4:采用 ""+object方法 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等. 方法1:采用 Object

  • Java String类用法详解

    一.简介 零碎知识点 extends Object implements serializable,Comparable< String >,charSequence String类表示字符串,所有字符串文字都是此类的对象 字符串是不变的,值在创建后无法更改 对象一旦声明则不可改变,改变的只是地址,原来的字符串还是存在的,并且产生垃圾 任何一个""都为字符串对象,无赋值则为匿名对象 用"+"拼接字符串尽量避免,一般用append+toString Str

  • Java之String[] args含义及作用

    String args[] 与 String[] args 没有区别,都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读. Java 中args一般存在main主类方法内,String args[ ]或者String[ ] args表示给主方法传一个字符串数组. 而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写. 如下: 1.可以从run config里面设置参数,如下图: 2. 拿到这个args设置的刚才的参数

  • Java之String.format()方法案例讲解

    前言:  String.format()作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,这里根据查阅的资料做个学习笔记,整理成如下文章,供后续复习查阅. 一. format()方法的两种重载形式: 1. format(String format, Object ... args) 该方法使用指定的格式字符串和参数返回一个格式化的字符串,格式化后的新字符串使用本地默认的语言环境. 2. format(Local l, String format, Pbject ... args) 其中,

  • Java之int和string类型转换详解

    int.String的类型转换 int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s

  • java string对象上的操作,常见的用法你知道吗

    目录 string string对象上的操作 1.判断是否为空 2.size()/length(); 3.s[n] 4.s1+s2 5.s1 = s2 6.s1 == s2 7. s1 != s2 8. s.c_str() 9.相加""+'' 10.范围for 总结 string C语言中,一般使用字符数组来表示字符串 char str[100] = "I love China"; C++中,也可以用到string类型来表示字符串,string和字符数组之间还可以相

  • Java String对象使用方法详解

    Java String对象使用方法详解 先来看一个例子,代码如下: public class Test { public static void main(String[] args) { String str = "abc"; String str1 = "abc"; String str2 = new String("abc"); System.out.println(str == str1); System.out.println(str1

  • Java中对象的比较操作实例分析

    本文实例讲述了Java中对象的比较操作.分享给大家供大家参考,具体如下: 一 点睛 在Java中,有两种方式可用于对象间的比较: 利用"=="运算符:用于比较两个对象的内存地址值(引用值)是否相等. 利用equals()方法:用于比较两个对象的内容是否一致. 二 "=="运算符的比较 1 代码 public class CompareObject1 { public static void main( String[] args ) { String str1 =

  • Java:String.split()特殊字符处理操作

    一:需要特殊处理才能使用split()方法的字符 (1)需要使用"\\"或"[ ]"才能正确使用的字符集: ( ) [ ] { \ ? * + . ^ $ | (2)栗子: String str = "a0^33$\\53\6|!?3#6&5/*6~9 MY{.3+-/}*(]6[>=<-(8"; //这里以"("为例 String str_sub1 = str.split("\\(")

  • Java String 对象(你真的了解了吗)

    String 对象的实现 String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一下String对象的优化过程. 1. 在 Java6 以及之前的版本中 String对象是对 char 数组进行了封装实现的对象,主要有四个成员变量: char 数组.偏移量 offset.字符数量 count.哈希值 hash. String对象是通过 offset 和 count 两个属性来定位

  • html文档中的location对象属性理解及常见的用法

    关于location对象的简单理解: 1.location对象中涵盖了当前页面(本页面)或者更直接的说,是当前加载的这个html文档的url信息 2.location对象作为window对象的一个属性,可以通过window.location老访问 下面顺便介绍一些URL(资源定位符)的相关信息吧: 在浏览器中URL通常由下面几个部分组成的: [协议][host][path][query] 协议:常见的协议有: http:// 表示资源文件在web服务器上 ftp://表示资源文件在网络上的ftp

  • Java String类详解_动力节点Java学院整理

    引题 在Java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合Java内存分配深度分析关于String的许多令人迷惑的问题.下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文. 1.Java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2.String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBuild

  • Java中对象都是分配在堆上吗?你错了!

    前言 我们在学习使用Java的过程中,一般认为new出来的对象都是被分配在堆上,但是这个结论不是那么的绝对,通过对Java对象分配的过程分析,可以知道有两个地方会导致Java中new出来的对象并不一定分别在所认为的堆上.这两个点分别是Java中的逃逸分析和TLAB(Thread Local Allocation Buffer).本文首先对这两者进行介绍,而后对Java对象分配过程进行介绍. 1. 逃逸分析 1.1 逃逸分析的定义 逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配压

  • Java 中的 String对象为什么是不可变的

    什么是不可变对象? String对象是不可变的,但这仅意味着你无法通过调用它的公有方法来改变它的值. 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对

  • Java中集合关系图及常见操作详解

    下面是一张下载的Java中的集合类型的继承关系图,便于正确的理解和使用相应的集合类型. 几个面试常见问题: 1.Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别? A:Vector和HashTable是线程同步的(synchronized).性能上,ArrayList和HashMap分别比Vector和Hashtable要好. 2.Q:大致讲解java集合的体系结构 A:List.Set.Map是这个集合体系中最主要的三个接口.       其中Lis

随机推荐