字符串知识点 记录+总结

1.将字符串转化为整型:有3种办法
(1)-‘0’ (适用1~9);
(2)调用atoi函数
atoi的功能就是将字符串转为整型并返回。其声明为
int atoi(char *str);
比如atoi(“1234”);会返回整型1234。
要调用atoi,需要引用头文件stdio.h
(3)用sscanf。
sscanf与标准格式化输入函数scanf类似,不过源并非是标准输入,而是字符串。
用sscanf可以处理更复杂的字符串。
比如字符串char * str = “a=1, b=2”;
定义int a,b;后
可以用
sscanf(str,”a=%d, b=%d”,&a,&b);
来将a,b值提取,计算后,a=1, b=2。
要使用sscanf同样需要引用头文件stdio.h。

2.
char s = (char )malloc(sizeof(char) * N);
atoi()
itoa()
strcat()

String字符串操作–切割,截取,替换,查找,比较,去空格

字符串拼接
直接用+号:String a = “I”; String b = “love”; String c = “you”;String d = a+b+c;就能得到I love you了

“I”+”love”+”you”得到的也是I love you

字符串比较
==和equals都能比较字符串,返回的都是boolean类型
String a =”I”;String b = “love”;
a==b;返回false a.equals(b)返回false
==比较的是2个字符串是否指向同一地址,equals()比较的是实际字符串,比如大小写,长度等

是否包含
1, contains();返回值为boolean类型
String a = “szrfrrgdhjd”;
a.contains(“g”)
里面包含,所以返回true

2, indexOf();返回的是一个int类型,通常和substring()一起用
String a = “qwertyu”;
a.indexOf(“e”);他返回的是int类型的2,就是说e在字符串a中的第2个位置
如果有多个e的话,始终返回的是第一个e的位置

是否为空
1, == null;
2, isEmpty();返回的都是boolean
String a = “sssss”;
a.idEmpty(); a不是空,返回的是false

分割字符串
split()分割字符串返回的是一个String数组
String a = “abcdeAfghijk”;
String [] b = a.split(“A”);//以A作为分割点,将字符串a分割为2个字符串数组分别为
b[0] = “abce”;
b[1] = “efghijk”
如果字符串包含好几个A呢
String a = “abcdeAfghAijk”;
String [] b = a.split(“A”); //以每个A作为分割点,得到的是
b[0] = “abde”;
b[1] = “fgh”;
b[2] = “ijk”;

还有更多就依此类推

截取字符串中间段
substring(int start,int end) 截取从start到end中间的字符串,也可以只传入一个int start 截取从start到最后
下面来一个实际操作:
{name=段炼, age=25, sex=男, id=12, hobby=吃饭。睡觉} 中拿到id是多少的值,也就是拿到int类型的12
[html] view plain copy
String s = “{name=段炼, age=25, sex=男, id=12, hobby=吃饭。睡觉}”;
if (s.contains(“id”)) {
//拿到id字段是处于字符串第几个位置
int start = s.indexOf(“id”);
//”id”字段后面是”hobby”字段,拿到hobby字段的位置
int end = s.indexOf(“hobby”);
/*
* {name=段炼, age=25, sex=男, id=12, hobby=吃饭。睡觉}
* start + 3:从i开始+3个正好是id也就是12开始的地方,
* end-2:hobby-2正好是12结束的位置;一共减去了一个h和一个逗号
*/
String a = s.substring(start + 3, end-2);
//得到id后转换成int类型
int id = Integer.parseInt(a);
[html] view plain copy
得到的id就是12

字符串替换
replace(oldChar, newChar)方法 参数1:要被替换的字符,参数2:替换进去的字符
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:
String s = “abcde8fghijk8lmn”;
String a = s.replace(‘8’, ‘Q’);
a的值为”abcdeQfghijkQlmn”
replaceAll(String regularExpression, String replacement), 替换所有包含的字符串
参数1:要替换的字符串,2,替换进去的字符串
String s = “QQQQabcWWWabcGGGGabc”;
String a = s.replaceAll(“abc”, “PPP”);
a的值为”QQQQPPPWWWPPPGGGGPPP”

如果只替换第一个abc用replaceFirst()
String s = “QQQQabcWWWabcGGGGabc”;
String a = s.replaceFirst(“abc”, “PPP”);
a的值为”QQQQPPPWWWabcGGGGabc”

去空格
ltrim()、rtrim() 和 trim() 函数的区别   
返回不带前导空格 (ltrim)、后续空格 (rtrim) 或前导与后续空格 (trim) 的字符串

转载:
【1】http://blog.csdn.net/dl10210950/article/details/52557089

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值