using namespace std; #include <iostream> #include<string> //第1种,用string自带的s.subdtr()截取任意子串,再用s.compare()确定是否与待求子串相等,时间复杂度O(len1*len2) int index1(string s,string t) { int i = 1; int len1 = s.length(); //主串长度 int len2 = t.length(); //子串长度 string…
因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原理. 1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数 var s:string; p,p1:PChar; begin s:='Hello Delphi'; p:=PChar(s); ShowMessage(p); p1:=StrAlloc(Len…
问题·:.String str = new String("abc")创建了多少个对象? 这个问题在很多书籍上都有说到比如<Java程序员面试宝典>,包括很多国内大公司笔试面试题都会遇到, 大部分网上流传的以及一些面试书籍上都说是2个对象,这种说法是片面的. 而这道题目让人混淆的地方就是这里,这段代码在运行期间确实只创建了一个对象,即在堆上创建了"abc"对象.而为什么大家都在说是2个对象呢,这里面要澄清一个概念 该段代码执行过程和类的加载过程是有区别的…
这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的. 本来因为见得太多已经吐槽无力,但这次实在忍不住了就又爆发了一把.写得太长干脆单独开了一帖. 顺带广告:对JVM感兴趣的同学们同志们请多多支持高级语言虚拟机圈子  以下是回复内容.文中的“楼主”是针对原问题帖而言. =============================================================== 楼主是看各种宝典了么……以后我面试人的时候就要专找宝典答案是错的来问,方便筛人orz 楼…
Java 请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧 [ 转载 ] @author RednaxelaFX 原文链接:请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧 使用这个描述方式实际上没有任何意义 引用 问题: String s = new String("xyz"); 创建了几个String Object? 这个问…
简单介绍: 1.toString,需要保证调用这个方法的类.方法.变量不为null,否则会报空指针. 2.String.valueOf.这个方法在使用的时候是有些特殊的.一般情况下,如果是确定类型的null传入,返回的是字符串“null”,而如果直接传入null,则会发生错误. 3.(String) 字符串类型强转.需要保证的是类型可以转成String类型. 这里重点介绍valueOf. 举个例子: String teString=null; teString=String.valueOf(te…
http://www.iteye.com/topic/774673 羞愧呀,不知道多少人干过,我也干过,面壁去! 这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的. 本来因为见得太多已经吐槽无力,但这次实在忍不住了就又爆发了一把.写得太长干脆单独开了一帖. 顺带广告:对JVM感兴趣的同学们同志们请多多支持高级语言虚拟机圈子  以下是回复内容.文中的“楼主”是针对原问题帖而言. ===================================================…
本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文涉及程序为.NET Core 2.0控制台应用程序. 一.常量字符串拼接 private static void TestPerformance(Action action, int times) { Stopwatch sw = new Stopwatch(); sw.Start(); for(i…
1,String类是final修饰的,不能被继承 2,String类的底层使用数组存储 JDK1.9之前:char[]value JDK1.9之后:byte[]value 3,String类的对象不可变 (1),字符串常量池中存储字符串常量,可以共享 (2),每次修改都会产生新对象,频繁修改的话效率不高 如果涉及到大量的字符串修改操作,建议使用StringBuffer或StringBuilder 如何实现不可变的? (1),类本身不能继承,没有子类会重写 (2),底层存储的value数组都是fi…
Java中String的数据是如何存储的,查看源代码就可以知道,String的数据是存储在char[] value这样一个成员变量中的,char类型的大小在java中是2个字节 我们还知道,现在普遍使用的unicode版本是UCS-2,就是使用2个字节表示一个字符的unicode版本,这就对上了,java使用的就是UCS-2标准,所以,String中的value中存储的都是一个个数字 比如’你’的unicode编码是4f60,看下面的测试代码 char c = '你'; System.out.p…