Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在字符串中查找子字符串_Java - Fatal编程技术网

Java 在字符串中查找子字符串

Java 在字符串中查找子字符串,java,Java,如何在字符串中找到子字符串,然后在找到它时将其记住并删除 例如: select * from (select a.iid_organizacijske_enote, a.sifra_organizacijske_enote "Sifra OE", a.naziv_organizacijske_enote "Naziv OE", a.tip_organizacijske_enote "Tip OE" 我想把所有的单词都放在“”里,所以 西夫拉·

如何在字符串中找到子字符串,然后在找到它时将其记住并删除

例如:

select * from (select a.iid_organizacijske_enote, 
       a.sifra_organizacijske_enote "Sifra OE", 
       a.naziv_organizacijske_enote "Naziv OE", 
       a.tip_organizacijske_enote "Tip OE" 
我想把所有的单词都放在“”里,所以

  • 西夫拉·奥伊
  • 纳齐夫奥伊
  • 提示OE
返回

select * from (select a.iid_organizacijske_enote, 
       a.sifra_organizacijske_enote,
       a.naziv_organizacijske_enote, 
       a.tip_organizacijske_enote
我尝试使用regex,
indexOf()
,但没有人能正常工作

用指定的文字替换序列替换与文字目标序列匹配的此字符串的每个子字符串。替换从字符串的开头一直进行到结尾,例如,将字符串“aaa”中的“aa”替换为“b”将导致“ba”而不是“ab”

如果您事先不知道单词,可以使用:

这意味着,所有以引号开头和结尾的字符串,以及除引号之外的任何字符,都将替换为空字符串。

:

用指定的文字替换序列替换与文字目标序列匹配的此字符串的每个子字符串。替换从字符串的开头一直进行到结尾,例如,将字符串“aaa”中的“aa”替换为“b”将导致“ba”而不是“ab”

如果您事先不知道单词,可以使用:


这意味着,所有以引号开头和结尾的字符串,以及除引号之外的任何字符,都将替换为空字符串。

考虑将正则表达式与捕获组一起使用。使用Java的Matcher类,您可以找到第一个匹配项,然后使用replaceFirst(字符串)

--编辑--

示例(对于长输入无效):


考虑将正则表达式与捕获组一起使用。使用Java的Matcher类,您可以找到第一个匹配项,然后使用replaceFirst(字符串)

--编辑--

示例(对于长输入无效):


我尝试并创建了如下函数——它工作正常,并返回您想要的输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            string s =  p.mystring("select * from (select a.iid_organizacijske_enote, a.sifra_organizacijske_enote 'Sifra OE', "
        +"a.naziv_organizacijske_enote 'Naziv OE', "+
       "a.tip_organizacijske_enote 'Tip OE'");
        }


        public string mystring(string s)
        {
            if (s.IndexOf("'") > 0)
            {
                string test = s.Substring(0, s.IndexOf("'"));
                s = s.Replace(test+"'", "");

                s = s.Remove(0, s.IndexOf("'") + 1);
                test = test.Replace("'", "");
                test = test + s;
                return mystring(test);
            }
            else
            {
                return s;
            }
        }
    }
}

我尝试并创建了如下函数——它工作正常,并返回您想要的输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            string s =  p.mystring("select * from (select a.iid_organizacijske_enote, a.sifra_organizacijske_enote 'Sifra OE', "
        +"a.naziv_organizacijske_enote 'Naziv OE', "+
       "a.tip_organizacijske_enote 'Tip OE'");
        }


        public string mystring(string s)
        {
            if (s.IndexOf("'") > 0)
            {
                string test = s.Substring(0, s.IndexOf("'"));
                s = s.Replace(test+"'", "");

                s = s.Remove(0, s.IndexOf("'") + 1);
                test = test.Replace("'", "");
                test = test + s;
                return mystring(test);
            }
            else
            {
                return s;
            }
        }
    }
}

最佳优化代码如下所示:

    public static void main(String[] args){
    int j =0;
    boolean substr = true;
    String mainStr = "abcdefgh";
    String ipStr = "efg";
    for(int i=0 ; i < mainStr.length();i++){
        if(j<ipStr.length() && mainStr.charAt(i)==ipStr.charAt(j)){
            j++;
        }               
    }
    if(j>=0 && j !=ipStr.length()){
        substr = false;
    }
    System.out.println("its a substring:"+substr);
}
publicstaticvoidmain(字符串[]args){
int j=0;
布尔substr=真;
字符串r=“abcdefgh”;
字符串ipStr=“efg”;
对于(int i=0;i
最佳优化代码如下:

    public static void main(String[] args){
    int j =0;
    boolean substr = true;
    String mainStr = "abcdefgh";
    String ipStr = "efg";
    for(int i=0 ; i < mainStr.length();i++){
        if(j<ipStr.length() && mainStr.charAt(i)==ipStr.charAt(j)){
            j++;
        }               
    }
    if(j>=0 && j !=ipStr.length()){
        substr = false;
    }
    System.out.println("its a substring:"+substr);
}
publicstaticvoidmain(字符串[]args){
int j=0;
布尔substr=真;
字符串r=“abcdefgh”;
字符串ipStr=“efg”;
对于(int i=0;i
请注意,仅仅说一些不起作用的东西通常没有多大帮助…请注意,仅仅说一些不起作用的东西通常没有多大帮助…你可能有什么例子吗?你可能有什么例子吗?老板!!他把这个问题标记为java,为什么用c回答。在你获得否决票之前删除..老板!!他把这个问题标记为java,为什么要用c#来回答呢?在获得否决票之前先删除。。
    public static void main(String[] args){
    int j =0;
    boolean substr = true;
    String mainStr = "abcdefgh";
    String ipStr = "efg";
    for(int i=0 ; i < mainStr.length();i++){
        if(j<ipStr.length() && mainStr.charAt(i)==ipStr.charAt(j)){
            j++;
        }               
    }
    if(j>=0 && j !=ipStr.length()){
        substr = false;
    }
    System.out.println("its a substring:"+substr);
}