`
forlab
  • 浏览: 133998 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

String index out of range: -1

 
阅读更多

前两天报字符串越界,查找中发现,应该是取某一个字符的位置时,出错了,原来使用lastIndexOf时要取得这个字符在被查找的字符串里没有。

解决方法,在取位置之前,先要验证一下,字符是否存在。

 if(name.lastIndexOf("Form")!=-1){

      name = name.substring(0, name.lastIndexOf("Form"));

}

JScript  语言参考

 

--------------------------------------------------------------------------------

lastIndexOf 方法
返回 String 对象中子字符串最后出现的位置。

strObj.lastIndexOf(substring[, startindex])

参数
strObj

必选项。String 对象或文字。

substring

必选项。要在 String 对象内查找的子字符串。

startindex

可选项。该整数值指出在 String 对象内进行查找的开始索引位置。如果省略,则查找从字符串的末尾开始。

说明
lastIndexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。

如果 startindex 是负数,则 startindex 被当作零。如果它比最大字符位置索引还大,则它被当作最大的可能索引。

从右向左执行查找。否则,该方法和 indexOf 相同。

下面的示例说明了 lastIndexOf 方法的用法

function lastIndexDemo(str2)
{
   var str1 = "BABEBIBOBUBABEBIBOBU"
   var s = str1.lastIndexOf(str2);
   return(s);
}

在java类中使用,大体上差不多。

 以下摘自http://www.chinageren.com/jc/HTML/115914_2.html

DateBean.java
{
   private String dateStr;
   private String year;
   private String month;
   private String day;
   //
   public void setDateStr(String str)    //私有变量dateStr的set方法
   {
     this.dateStr=str;
   }
   public String getDateStr()    //私有变量dateStr的get方法
   {
     return dateStr;
   }
   public String getYear()//得到年的字符串
   {
     int a=dateStr.indexOf("-");//求第一个“-”的位数
     year=dateStr.substring(0,a);//取第一个“-”前的字符串
     return year;
   }
   public String getMonth()//得到月的字符串
   {
     int a=dateStr.indexOf("-");//求第一个“-”的位数
     int b=dateStr.lastIndexOf("-");//求最后一个“-”的位数
     month=dateStr.substring(a+1,b);//取两个“-”之间的字符串
     return month;
   }
   public String getDay()//得到日的字符串
   {
     int b=dateStr.lastIndexOf("-");//求最后一个“-”的位数
     int len=dateStr.length();//求字符串的长度
     day=dateStr.substring(b+1,len);//取最后一个“-”以后的字符串
     return day;
   }
}
分享到:
评论

相关推荐

    String index out of 4解决方法

    ### String index out of 4解决方法 在编程中,尤其是使用Java进行字符串处理时,经常会遇到`StringIndexOutOfBoundsException`异常。这种异常通常发生在试图访问一个不存在的字符串索引时。例如,如果尝试访问一个...

    apache-maven-3.0.2-bin

    * [MNG-4925] - Mismanagement of container lookup realm can cause type incompatibilities for plugins looking up components by string * [MNG-4933] - With a resource directory as . maven raise an java....

    java 字符串索引越界异常(StringIndexOutBounds)

    1. **负索引访问**:如果你尝试访问负数索引,例如`str.charAt(-1)`,Java会抛出此异常,因为字符串的第一个字符的索引是0,没有负数索引。 2. **超过字符串长度的索引**:访问等于或大于字符串长度的索引也会引发...

    使用Mybatis Generator自动生成Mybatis相关代码

    Mybatis Generator是一款强大的工具,它能够自动生成Mybatis的相关代码,包括Mapper接口、XML映射文件、实体类以及DAO层的实现代码,极大地提高了开发效率,减少了手动编写这些重复性工作的繁琐。...

    代码折叠工具 For Eclipse ——修复版

    java.lang.StringIndexOutOfBoundsException: String index out of range: 45 at java.lang.String.charAt(Unknown Source) at com.cb.eclipse.folding.java.calculation.UserDefinedRegionHelper.isSentinel...

    EurekaLog_7.5.0.0_Enterprise

    Use 0 (default) for small projects, use 1 for large projects (if ecc32 runs out of memory). 2)....Added: --el_DisableDebuggerPresent command-line option for compatibility with 3rd party debuggers ...

    ASP开发中遇到的错误信息中文说明大全.doc

    6. **ASP0105 Index out of range** - **描述**:索引超出范围(一个数组索引超出) - **解决方案**: - 检查数组边界。 - 确保索引值在有效范围内。 7. **ASP0106 TypeMismatch** - **描述**:类型不匹配(遇到...

    S7A驱动720版本

    - Support for S7-200 with CP 243-1 was added. Solved problems: - Passing of invalid OPC Item IDs caused a memory leak of the driver's global memory. After the global memory was exhausted, the ...

    Spring+Hibernate StringIndexOutOfBoundsException String index out解决方法

    Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 这个异常的出现是由于 Hibernate 在对字符串进行操作时,索引超出了字符串的范围所导致的。在 Hibernate 中,这个异常可能会在...

    java 数组下标越界异常(ArrayIndexOutOfBoundsException)

    arr[3]`或`arr[-1]`。 2. **在循环中不正确地设置索引**:例如,在for循环中,如果步长设置不当,可能会导致超出索引范围。 3. **数组元素删除后未更新索引**:在删除数组元素后,如果继续使用原有的索引,可能会...

    C++_STL_示例

    - 当尝试访问超出字符串长度的索引时,`at()`方法会抛出`out_of_range`异常。 5. **其他方法**: - `find_last_of()`, `find_first_not_of()`, `find_last_not_of()`:分别用于查找最后出现的匹配字符、首次不...

    base64file.py

    base64文件解密 import base64 flag='' with open(u"E:/我的下载/flag",'r') as... elif line.strip()[-1:] == '=': binstr = tobin(line[-2:-1]) out += binstr[-2:] print binstr[-2:] print out print toStr(out)

    2009 达内Unix学习笔记

    显示文件的权限、硬链接数(即包含文件数,普通文件是1,目录1+)、用户、组名、大小、修改日期、文件名。 ls -t (time)按修改时间排序,显示目录和文件。 ls -lt 是“-l”和“-t”的组合,按时间顺序显示列表。 ls...

    List用法汇总.zip

    new_list = [x * x for x in range(10)] # 创建1到9的平方列表 ``` 10. **多维列表**: - 在 Python 中,列表可以包含其他列表,形成多维列表: ```python multi_dim_list = [[1, 2], [3, 4], [5, 6]] ``` ...

    新手常见Python运行时错误汇总.docx

    IndexError: list index out of range 该错误发生在引用超过 list 最大索引的情况下。例如: ``` spam = ['cat', 'dog', 'mouse'] print(spam[6]) ``` 解决方法是检查 list 的索引范围是否正确。 KeyError: ‘spam...

    第七次上机题目及参考代码 (1).docx

    if (index >= buflen) throw "Index out of range"; return buffer[index]; } unsigned String::length() const { return buflen - 1; } int String::compare(const String &s) const { return strcmp(buffer, ...

    ImageMagick图片批量处理

    -compress type type of pixel compression when writing the image -define format:option define one or more image format options -delay value display the next image after pausing -density geometry ...

    C++中string类的使用说明(保姆级说明)

    std::cout << "Index out of range: " () << std::endl; } ``` #### 五、字符串连接 连接操作使得我们可以轻松地将多个字符串合并为一个: 1. **连接操作符**:`operator+` - 用途:将两个字符串连接起来。 -...

    Python学习PDF总结

    整数的书写方式与数学中的表示方式相同,例如 `1`、`100`、`-8080` 和 `0` 等。 由于计算机采用二进制表示数据,有时使用十六进制来表示整数更为方便。在 Python 中,十六进制整数用前缀 `0x` 或 `0X` 跟随一系列的...

    Bochs - The cross platform IA-32 (x86) emulator

    --enable-sep, --enable-aes, --enable-1g-pages are deprecated and should not be used anymore. - Local APIC configure option --enable-apic is deprecated and should not be used anymore. The LAPIC ...

Global site tag (gtag.js) - Google Analytics