A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© muyyi 中级黑马   /  2014-7-16 18:09  /  1428 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

看完今天字符串方法的视频后有几点不明白的地方
希望大家能指教下,谢谢

代码如下


1.@的作用是什么?

2.转到split方法的定义,可以看到一个名为“params char[] separator”的参数
请问params 的作用是什么
加或者不加的区别在哪里?

3.按照蒋老师的说法,split 方法是从左到右依次读取str中的字符,当与参数数组中字符相等的时候
去掉该字符并将该字符前面的字符串存入内存
那么按理来说,我理解中间3个!!!有2个空格的情况
但是按照这种推理最后一个问号是不应该出现空格的,因为当读到?的时候,将"you"存入内存,并将?去掉
程序此时就结束了,不应该再产生一个空格
但是调试的结果和老师的结论都是在这里会产生一个空格,为什么?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

2 个回复

正序浏览
昕☆Rainbow 发表于 2014-7-16 20:09
@的作用是让 \n \t之类的转义字符不再被理解成转义字符而是直接输出,并且字符串可以换行

params的作用是 ...

谢谢解答,我理解了
第三个问题我又去试了一下,的确像你说的一样,有几个问号就会输出几个空格的
我想我之前一直不能理解的原因是以为程序运行到最后一个?时候就结束了
是不是实际上程序还会继续运行一次,发现前面没有值了,于是输出一个空格?
回复 使用道具 举报
@的作用是让 \n \t之类的转义字符不再被理解成转义字符而是直接输出,并且字符串可以换行

params的作用是定义一个长度可变的数组,比如你输入的' ','!','?' 其实就是他自动帮你组成了一个3个元素的char数组,如果没有params的话你就必须先声明一个char数组存进这些分隔符然后再把char数组的名称作为参数传进来,或者在参数里写new char[]{' ','!','?'}

3我也不是很清楚了,是不是可以理解成当分隔符与参数数组中字符相等的时候,去掉该字符并将该字符前面的字符串存入内存,如果前面没有内容,就存入一个空格,因为最后你有几个?就会输出几个空格的

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马