对于string类型的不同长度的数据调用substring函数时避免空指针报错
2017-04-06 21:22
459 查看
在项目中进行lucene进行全文搜索时,搜索到的内容展示出来的有标题(title)和部分内容(content)展示,但是content中的内容不同的文件显示的长度各不相同,这时我想到对于string 类型的content展示的时候进行截取,用string类型自带的substring(int start,int end)函数来截取,即String content = doc.get("content").substring(0,100)。但是运行的时候报出了空指针错误。
后来查找后发现有些content的内容长度只有5,有的只有20等等各不相同,所以我想对第二个参数做一个判断来选择合适的参数,于是我在第二个参数上用了一个三元操作符判断来选择合适的参数,即String content = doc.get("content").substring(0, doc.get("content").length()<150 ? doc.get("content").length() : 150);运行后没有再报空指针错误,搜索成功。
后来查找后发现有些content的内容长度只有5,有的只有20等等各不相同,所以我想对第二个参数做一个判断来选择合适的参数,于是我在第二个参数上用了一个三元操作符判断来选择合适的参数,即String content = doc.get("content").substring(0, doc.get("content").length()<150 ? doc.get("content").length() : 150);运行后没有再报空指针错误,搜索成功。
相关文章推荐
- 有时我们需要调用一个函数时,返回多个不同类型的数据
- 高效C编程(上) 基础数据类型,Loop,寄存器分配,函数调用,指针别名 ARM
- OpenCV 不同的数据类型调用不同的函数
- 使用void指针给函数传递不同的数据类型
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
- 函数处理,用指针类型是数据做函数参数比较大小
- 通过调用同一个函数(参数不同)将数据写入文件和显示到屏幕上
- C++强制转换不同声明或类型的函数指针隐患
- 成员函数指针和其他类型的强制转换,使用一般指针调用成员函数
- 阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据
- 测量各种数据类型的长度(包括指针),typedf关键字对数据类型的作用!
- 参数数据类型 sql_variant 对于 like 函数的参数 1 无效。
- MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法
- 数据类型不同平台长度
- 求变量的数据类型,typeid,bool,C和C++的不同,new和delete,C++中的枚举,inline和可变参数模板,auto和函数模板,宽字符
- 【牛客 题库】 求字符串长度和大小 || 基类和派生类的构造函数,隐式调用与显式调用 || 数组下标的数据类型
- 只言片语,C数据类型,函数指针类型
- Matlab编程与数据类型 -- 函数M文件的调用
- 测量各种数据类型的长度(包括指针),typedf关键字对数据类型的作用!
- Redis中String类型的Value最大可以容纳数据长度