java indexOf() 和lastIndexOf()字符查找实现方法

java indexof() 和lastindexof()字符查找实现方法

class indexofdemo {
  public static void main(string args[]) {
    string s = "now is the time for all good men " + "to come to the aid of their country.";

    system.out.println(s);
    system.out.println("indexof(t) = " + s.indexof('t'));
    system.out.println("lastindexof(t) = " + s.lastindexof('t'));
    system.out.println("indexof(the) = " + s.indexof("the"));
    system.out.println("lastindexof(the) = " + s.lastindexof("the"));
    system.out.println("indexof(t, 10) = " + s.indexof('t', 10));
    system.out.println("lastindexof(t, 60) = " + s.lastindexof('t', 60));
    system.out.println("indexof(the, 10) = " + s.indexof("the", 10));
    system.out.println("lastindexof(the, 60) = " + s.lastindexof("the", 60));
  }
}

引用上面的实例我们来做个字符串查找实例

public class main {

  /**
   * find the latest index of any of a set of potential substrings.
   *
   * a <code>null</code> string will return <code>-1</code>.
   * a <code>null</code> search array will return <code>-1</code>.
   * a <code>null</code> or zero length search array entry will be ignored,
   * but a search array containing "" will return the length of <code>str</code>
   * if <code>str</code> is not null. this method uses {@link string#indexof(string)}
   *
   * <pre>
   * stringutils.lastindexofany(null, *)                   = -1
   * stringutils.lastindexofany(*, null)                   = -1
   * stringutils.lastindexofany(*, [])                     = -1
   * stringutils.lastindexofany(*, [null])                 = -1
   * stringutils.lastindexofany("zzabyycdxx", ["ab","cd"]) = 6
   * stringutils.lastindexofany("zzabyycdxx", ["cd","ab"]) = 6
   * stringutils.lastindexofany("zzabyycdxx", ["mn","op"]) = -1
   * stringutils.lastindexofany("zzabyycdxx", ["mn","op"]) = -1
   * stringutils.lastindexofany("zzabyycdxx", ["mn",""])   = 10
   * </pre>
   *
   * @param str  the string to check, may be null
   * @param searchstrs  the strings to search for, may be null
   * @return the last index of any of the strings, -1 if no match
   */
  public static int lastindexofany(string str, string[] searchstrs) {
      if ((str == null) || (searchstrs == null)) {
          return -1;
      }
      int sz = searchstrs.length;
      int ret = -1;
      int tmp = 0;
      for (int i = 0; i < sz; i++) {
          string search = searchstrs[i];
          if (search == null) {
              continue;
          }
          tmp = str.lastindexof(search);
          if (tmp > ret) {
              ret = tmp;
          }
      }
      return ret;
  }
  // ----------------------------------------------------------------------
  /**
   * checks if an array of objects is empty or <code>null</code>.
   *
   * @param array  the array to test
   * @return <code>true</code> if the array is empty or <code>null</code>
   * @since 2.1
   */
  public static boolean isempty(char[] array) {
      if (array == null || array.length == 0) {
          return true;
      }
      return false;
  }
  // empty checks
  //-----------------------------------------------------------------------
  /**
   * checks if a string is empty ("") or null.
   *
   * <pre>
   * stringutils.isempty(null)      = true
   * stringutils.isempty("")        = true
   * stringutils.isempty(" ")       = false
   * stringutils.isempty("bob")     = false
   * stringutils.isempty("  bob  ") = false
   * </pre>
   *
   * note: this method changed in lang version 2.0.
   * it no longer trims the string.
   * that functionality is available in isblank().
   *
   * @param str  the string to check, may be null
   * @return <code>true</code> if the string is empty or null
   */
  public static boolean isempty(string str) {
      return str == null || str.length() == 0;
  }

}

实例二

public static int indexofany(string str, string[] searchstrs) {
      if ((str == null) || (searchstrs == null)) {
          return -1;
      }
      int sz = searchstrs.length;

      // string's can't have a max_valueth index.
      int ret = integer.max_value;

      int tmp = 0;
      for (int i = 0; i < sz; i++) {
          string search = searchstrs[i];
          if (search == null) {
              continue;
          }
          tmp = str.indexof(search);
          if (tmp == -1) {
              continue;
          }

          if (tmp < ret) {
              ret = tmp;
          }
      }

      return (ret == integer.max_value) ? -1 : ret;
  }

测试

* stringutils.indexofany(null, *)                     = -1
   * stringutils.indexofany(*, null)                     = -1
   * stringutils.indexofany(*, [])                       = -1
   * stringutils.indexofany("zzabyycdxx", ["ab","cd"])   = 2
   * stringutils.indexofany("zzabyycdxx", ["cd","ab"])   = 2
   * stringutils.indexofany("zzabyycdxx", ["mn","op"])   = -1
   * stringutils.indexofany("zzabyycdxx", ["zab","aby"]) = 1
   * stringutils.indexofany("zzabyycdxx", [""])          = 0
   * stringutils.indexofany("", [""])                    = 0
   * stringutils.indexofany("", ["a"])                   = -1

时间: 2024-12-01 15:51:12

java indexOf() 和lastIndexOf()字符查找实现方法的相关文章

利用lastIndexOf字符查找方法

利用lastindexof字符查找方法 lastindexof 方法返回一个整数值,指出 string 对象内子字符串的开始位置.假如没有找到子字符串,则返回 -1. 假如 startindex 是负数,则 startindex 被当作零.假如它比最大字符位置索引还大,则它被当作最大的可能索引. 从右向左执行查找.否则,该方法和 indexof 相同. 下面的示例说明了 lastindexof 方法的用法 public static int lastindexofany(string str,

java 全角半角字符转换的方法实例_java

如果搞明白了Java中全角字符和半角字符之间的关系那他们之间的转换根本就不是个事. 可以通过下面的程序看看Java中所有字符以及对应编码的值 复制代码 代码如下:     public static void main(String[] args) {        for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {            System.out.println(i + "    "

javascript string.indexOf()字符查找实现方法

提示:您可以先修改部分代码再运行 提示:您可以先修改部分代码再运行

js indexOf()函数字符查找方法

js indexof()函数字符查找方法 */ function checkdomain(domain) {  if(domain.indexof(".")==-1)  {      return -1;  }   return 1; } var d ='www.111cn.net'; if( checkdomain( d ) ) {  alert('有效域名'); } else {  alert('无效域名'); }

java indexOf()简单字符查找实例

java indexof()简单字符查找实例 int indexof(string ch); 就是查找字符/字符串ch在index以后的位置,如果没有找到返回-1;index可以有可以没有,没有时默认为0. eg: string str="liuzheliuxing";        system.out.println((int)'i')                         // i的ascii        system.out.println(str.indexof(

JS+CSS实现模仿浏览器网页字符查找功能的方法

 这篇文章主要介绍了JS+CSS实现模仿浏览器网页字符查找功能的方法,实例分析了javascript实现查找功能的样式及相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS+CSS实现模仿浏览器网页字符查找功能的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <html> <head> <title>JS+CSS模仿的网页字符查找功能</title> <style type=text/css> BODY

JS+CSS实现模仿浏览器网页字符查找功能的方法_javascript技巧

本文实例讲述了JS+CSS实现模仿浏览器网页字符查找功能的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head> <title>JS+CSS模仿的网页字符查找功能</title> <style type=text/css> BODY { FONT-SIZE: 12px; LETTER-SPACING: 1pt; LINE-HEIGHT: 22px; MARGIN-LEFT: 5pt; MARGIN-TOP

java中如何在LinkedList查找元素

LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList():  --生成空的链表 2. public LinkedList(Collection col):  复制构造函数 我们可以使用LinkedList的indexOf()或者lastIndexOf()方法来查找元素(遇到第一个匹配的元素即停止搜索,同时返回该元素的索引.所以,当LinkedList中有两个同样的元素的时候,使用这两个

JAVA实现FTP断点上传的方法_java

本文实例讲述了JAVA实现FTP断点上传的方法.分享给大家供大家参考.具体分析如下: 这里主要使用apache中的net包来实现.网址http://commons.apache.org/net/.具体包的下载和API文档请看官网. 断点上传就是在上传的过程中设置传输的起始位置.并设置二进制传输. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.