sizeof和strlen在string类中的使用】的更多相关文章

字符串的sizeof和strlen 考虑下面的问题: char a[] = "abcdef"; char b[20] = "abcdef"; string s = "abcdef"; cout<<strlen(a)<<endl;   // 6,字符串长度 cout<<sizeof(a)<<endl;   // 7,字符串容量 cout<<strlen(b)<<endl;  …
今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法.所以今天看了一下.个人觉得给String类中加入这个方法可能是为了提升一点点性能,因为从常量池取数据比从堆里面去数据要快一些.(个人感觉) API上的那几句关于这个方法,其实总结一句就是调用这个方法之后把字符串对象加入常量池中,常量池我们都知道他是存在于方法区的,他是方法区的一部分,而方法区是线程共享的,所以常量池也就是线程共享的,但是他并不是线程不安全的,他其实是线程安全的,…
一.获取: 1.获取字符串的长度(注意是方法,不是跟数组的属性一样的) int length(); 1 public static void getLength(){ 2 String s = "java01"; 3 int len = s.length(); 4 System.out.println(len); 5 } 2.根据位置,获取该位置的那一个字符(只能是单个字符) char charAt(int index); 1 //根据指定位置获取对应的那个字符,只能是一个字符不能是字…
1.字符串与字符数组的转换 字符串可以使用toCharArray()方法变成一个字符数组,也可以使用String类的构造方法把一个字符数组变成一个字符串. public class StringAPIDemo01 { public static void main(String[] args) { String str1 = "hello"; //定义字符串 char c[] = str1.toCharArray(); //将字符串变为字符数组 for(int i=0;i<c.l…
String类的定义:    java.lang  类 String   java.lang.Object      java.lang.String 所有已实现的接口:Serializable, CharSequence, Comparable<String> public final class String      extends Objectimplements Serializable, Comparable<String>, CharSequenceString 类代…
package cn.method.demo; public class StringDemo2 { public static void main(String[] args) { String s1=new String("qy95"); String s2="qy95"; System.out.println(s1); System.out.println(s2); //在String 类中引用类型(==)表示该对象内存地址数值比较 //而String类中的e…
String类 一.转换成String方法 1.public String(); 空参构造 初始化一个新创建的 String 对象,使其表示一个空字符序列 2.public String(byte[] bytes); 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String 将97,97.99转成ascll码表对应的字符; 3.public String(byte[] bytes,int index,int length); 分配一个新的 String,使其表示字符数组参数…
String类中的equals()方法: public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject) { return true; } //如果传递进来的参数是String类的实例 if (anObject instanceof String) { String anotherString = (String)anObject; int n = count;//字符串长度 if (n == anotherSt…
用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上的字符 (3)String toLowerCase(): 字符串转成小写 (4)String toUpperCase(): 字符串转成大写 (5)String repalce(char oldChar, char newChar): 将字符串中的老字符,替换为新字符 (6)String repalc…
package com.pjc.objects;                        replaceAll()方法的理解引出正则表达式import java.util.regex.Pattern; public class Test4_1 { public static void main(String[] args) {        String directory="com.study.".replaceAll(".", "/")…
一,前言 ​ 昨天简单整理了JVM内存分配和String类常用方法,遇到了String中的intern()方法.本来想一并总结起来,但是intern方法还涉及到JDK版本的问题,内容也相对较多,所以今天就弥补昨天缺失的知识点. 二,String.intern() ​ 先来看下网上流行的关于intern()方法的示例代码: public static void main(String[] args) { String s = new String("1"); s.intern(); St…
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年5月14日 * 版本号:V1.0 * 问题描述:string类中getline函数的应用 * 程序输入:无 * 程序输出:见运行结果 */ //string类中getline函数的应用 #include <iostream> #include <string&…
C++中预定义的加.减等运算符的操作对象只能是基本的数据类型.如果要在用户自定义的类型对象上应用同样的运算符,就需要通过运算符重载来重新定义其实现,使它能够用于自定义类型执行特定的操作,所以运算符重载的基本要求是要跟应用在基本数据类型上的功能""看起来""是一致的. 运算符重载的实质是函数重载,其定义也于一般函数的定义类似,唯一一点区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的.运算符函数定义的一般格式如下: <返回值类型&g…
一.整理string类 1.Length():获取字串长度: 2.charAt():获取指定位置的字符: 3.getChars():获取从指定位置起的子串复制到字符数组中:(它有四个参数) 4.replace():子串替换: 5.toUpperCase().toLawerCase():大小写转换: 6.trim():去除头尾空格: 7.toCharArray():将字符串转换为字符数组. 二.String.equals()方法: 实现代码:public static void main(Stri…
在Java中,每一个对象都有一个地址空间,在这空间保存着这个对象的值. equals 比较的是值,==比较的地址以及值. 01: public class StringExample02: {03: public static void main (String args[])04:   {05: String s0 = "Programming";06: String s1 = new String ("Programming");07: String s2 =…
IT第九天 上午 包 1.包的命名规则:域名.项目名称.模块名 2.如:Wfei.com.windows.login 访问限制符 1.四种访问限制符分别对应为: (1)default:默认的,默认为protect (2)public:公共的引用了本类的都可以访问的 (3)protect:在同一个包中的可以访问 (4)private:只能在当前类中才可以访问 方法优化 1.逻辑思维:猜拳游戏的设定 下午 内存分配 1.在8种数据类型中,除了String型是类外,其他7种数据类型,均是结构体,结构体…
我们用一个经典的例子来理解 package com.jvm.heap; public class MyTest { public static void main(String[] args) { String str1 = new StringBuilder("计算机").append("软件").toString(); System.out.println(str1.intern() == str1); String str2 = new StringBuild…
我们知道String中的equals方法是被重写过的,因为object的equals方法是比较的对象的内存地址,而String的equals方法比较的是对象的值. 首先几个知识点: 基本数据类型==比较的是值,引用数据类型==比较的是内存地址. 所以我的思路是: 将两个String对象都变成char数组,然后进行数组内容的对比即可. JDK中的源码是: public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject…
结论是:两者没有任何区别 解释: C++Reference中对于两者的解释: 两者的具体解释都一模一样: 理解: length是因为C语言的习惯而保留下来的,string类最初只有length,引进STL后,为了兼容,又添加了size,便于符合STL的接口规则 人们在使用时,size() 一般用作返回容器大小的方法,length() 一般用作返回一个序列的长度,但两者返回的结果是一样的.…
C++ string 类的成员函数,用于拷贝.赋值操作,它们允许我们顺次地把一个 string 对象的部分内容拷贝到另一个 string 对象上. 函数原型 string &operator=(const string &s); 把字符串s赋给当前字符串 string &assign(const char *s); 用c类型字符串s赋值 string &assign(const char *s,int n); 用c字符串s开始的n个字符赋值 string &assi…
package com.zs.demo1; public class Demo1 { public static void main(String[] args) { fun1(); fun2(); fun3(); fun4(); fun5(); fun6(); fun7(); fun8(); fun9(); } private static void fun9() { // 判断字符串的内容是否相等 //s.equalsIgnoreCase(s1) 不区分大小写的比较 System.out.p…
今天做一道题,要用string类,涉及大小写转换,查看了C++文档,string类没有提供这样的方法,只好自己写. 之后是想到一个比较笨的方法,我把string当成一个容器,然后用迭代器一个一个来替换. 比如下面的是大写转小写: string temp; string::iterator it; for (it = temp.begin(); it != temp.end(); it++) if ((*it) < 'a') *it = *it + 32; 测试一下代码: #include<io…
split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator],[limit])参数:stringObj   必选项.要被分解的 String 对象或文字.该对象不会被 split 方法修改.separator 可选项.字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符.如果忽 略该选项,返回包含整个字符串的单一元素数组. limit可选项.该值用来限制返回数组中的元素个数. 说明:split 方法的结果…
最常用的就是Length()函数了,求字符串的长度 String s="";int i=s.length();i结果为0. 如果是String s=null;int i=s.length();编译没错.运行会报错 charAt()函数: charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法. charAt()方法返回指定索引位置的char值.索引范围为0~length()-1. 如: str.charAt(0)检索str中的第一个字符,str…
该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符 eg:  public class class6_3 { public static void main(String args[]) { String s1=new String("我是中国人"); char[] c=s1.toCharArray(); System.out.println("数组c的长度为:"+c.length); System.out.println(c); System…
这里我们就把 info 这个字符串 通过 “ ” 这个分隔符 分割成几部分 并吧没部分添加到 s 数组里面 注意:只有字符串才能分割 分隔符必须是 char 类型 而且是 字符串 里面存在的, 例如我给在例1中Split 括号中不传入 " " 而传入 "*" 系统将无法分割,报错内容自己看吧,我就不在举例了. 变量名.ToLower() 这个方法是把字符串中所有的字母变成小写形式, 主要用于字符串的比较,有时候我们可能不太注意大小的,可以通过这种方式来进行统一: 例…
1.字符串与字节 public String(byte[] byte); 将全部字节变成字符串 public String (byte[] byte,int offset,int length) 将部分字节变成字符串 public byte[] getBytes() 将字符串变成字节 public byte[] getBytes(String charsetName) throws Excption 字符串转码操作 public class TestDemo { public static vo…
package cn.homework.demo1; public class GetCount { /* * 获取一个字符串中,另一个字符串出现的次数 * 思想: * 1. indexOf到字符串中到第一次出现的索引 2 * 2. 找到的索引+被找字符串长度,截取字符串 lll * 3. 计数器++ */ public static void main(String[] args) { String str1 = "hellollw"; String str2 = "l&q…
C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量 strrchr 在字符串里定位给定字符最后一次出现的位置 strpbrk 在字符串str1里定位字符串str2里任意一个首次出现的字符 strspn 返回字符串str1从开始字符到第一个不在str2中的字符个数 strstr 在字符串str1中…
toCharArray()方法  该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符 public class toChar1{ public static void main(String[] args){ String s1=new String("I am Chinese"); char c[]=s1.toCharArray(); System.out.println("the length of c:"+c.length); Syste…