C++:
const char*《=》char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。
C++标准规定,const关键字放在类型或变量名之前等价的。
参考:http://blog.csdn.net/yingxunren/article/details/3968800
有两种字符串,一种是从C沿袭过来的,称为C-字符串,简称C-串。
C-串空间长度=字符串长度+1。最后一位是0。
类型:char* 更精准是const char* 。事实上,所有字面值都是const的。
例子:
char* 与 const char* 的操作是相同的。{
http://write.blog.csdn.net/postedit?ref=toolbarchar* s1 = "Hello";
char* s2 = "123";
char a[20];http://write.blog.csdn.net/postedit?ref=toolbar
strcpy(a,s1); //复制
cout<<(strcmp(a,s1) == 0 ? "" : "not")<<"equal\n"; //比较
cout<<strcat(a,s2)<<endl; //连接
cout<<strrev(a)<<endl;//倒置
cout<<strset(a,'c')<<endl;// 设置
cout<<(strstr(s1,"ell")? "" : "not")<<"found\n";//查找串
cout<<(strchr(s1,'c')? "" : "not")<<"found\n";// 查找字符
}
java :
一.
char chars[]={'a','b'.'c'};
String s=new String(chars);
1、length() 字符串的长度.
int len = s.length();
2、charAt()截取一个字符
例:char ch;
ch = "abc".charAt(1);返回b
3、getChars()截取多个字符
例:String s = "this is a demo of the getChars method.";
char buf[] = new char[20];
s.getChars(10,14,buf,0);//取s从下标10开始到下标13的子字符串复制到buf的下标为0的字符串中。
4.getBytes()
9、equals()和==
equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
例:String s1="Hello";
String s2=new String(s1);
s1.eauals(s2); //true
s1==s2;//false
10、compareTo()和compareToIgnoreCase() 比较字符串
11、indexOf()和lastIndexOf()
indexOf() 查找字符或者子串第一次出现的地方。
lastIndexOf() 查找字符或者子串是后一次出现的地方。
12、substring()
它有两种形式,第一种是:String substring(int startIndex)
第二种是:String substring(int startIndex,int endIndex)
13、concat() 连接两个字符串
14 、replace() 替换
它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
String replace(char original,char replacement)
例如:String s="Hello".replace('l','w');
第二种形式是用一个字符序列替换另一个字符序列,形式如下:
String replace(CharSequence original,CharSequence replacement)
15、trim() 去掉起始和结尾的空格
16、valueOf() 转换为字符串
17、toLowerCase() 转换为小写
18、toUpperCase() 转换为大写
参考:http://blog.163.com/hn_myj@126/blog/static/50555635200861133942947/
二.
StringBuffer定义了三个构造函数:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
StringBuffer(CharSequence chars)
(1)、length()和capacity()
一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。
(2)、ensureCapacity() 设置缓冲区的大小
void ensureCapacity(int capacity)
(3)、setLength() 设置缓冲区的长度
void setLength(int len)
(4)、charAt()和setCharAt()
char charAt(int where)
void setCharAt(int where,char ch)
(5)、getChars()
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
(6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。
例:int a=42;
StringBuffer sb=new StringBuffer(40);
String s=sb.append("a=").append(a).append("!").toString();
(7)、insert() 插入字符串
StringBuffer insert(int index,String str)
StringBuffer insert(int index,char ch)
StringBuffer insert(int index,Object obj)
index指定将字符串插入到StringBuffer对象中的位置的下标。
(8)、reverse() 颠倒StringBuffer对象中的字符
StringBuffer reverse()
(9)、delete()和deleteCharAt() 删除字符
StringBuffer delete(int startIndex,int endIndex)
StringBuffer deleteCharAt(int loc)
(10)、replace() 替换
StringBuffer replace(int startIndex,int endIndex,String str)
(11)、substring() 截取子串
String substring(int startIndex)
String substring(int startIndex,int endIndex)
待续。。。