有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    如果您专门查找单词“from”后第一个空格的索引,可以使用:

    text.substring(text.indexOf("from")).indexOf(' ');
    

    如果你想做一些更一般的事情,你需要提供更多的信息。但是indexOf()方法可能对您非常有用

    编辑:这实际上应该是

    text.indexOf(' ', text.indexOf("from"));
    

    第一个版本返回相对于“from”的索引,而第二个版本返回相对于原始字符串的索引。(谢谢@jpm)

    此循环将查找给定字符串中的所有空格字符:

    int index = text.indexOf(' ');
    while (index >= 0) {
        System.out.println(index);
        index = text.indexOf(' ', index + 1);
    }
    
  2. # 2 楼答案

    使用indexOf()方法。希望你得到答案

  3. # 3 楼答案

    最基本的答案可能是

    String text = "select ename from emp";
    
    text = text.toLowerCase();
    if (text.contains("from ")) {
        int index = text.indexOf("from ") + "from".length();
        System.out.println("Found space @ " + index);
        System.out.println(text.substring(index));
    } else {
        System.out.println(text + " does not contain `from `");
    }
    

    或者你可以使用一些正则表达式(这是一个很糟糕的例子,但是hay)

    Pattern pattern = Pattern.compile("from ");
    Matcher matcher = pattern.matcher(text);
    
    String match = null;
    
    int endIndex = -1;
    
    if (matcher.find()) {
    
        endIndex = matcher.end();
    
    }
    
    if (endIndex > -1) {
        endIndex ;
        System.out.println("Found space @ " + endIndex);
        System.out.println(text.substring(endIndex));
    } else {
        System.out.println(text + " does not contain `from `");
    }
    

    要找到每个空间的索引,你可以做如下操作

    Pattern pattern = Pattern.compile(" ");
    Matcher matcher = pattern.matcher(text);
    
    String match = null;
    
    while (matcher.find()) {
        System.out.println(matcher.start());
    }
    

    哪个会输出

    6
    12
    17