ORACLE怎样判断一个串中包含字串,如C#中的contain

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE怎样判断一个串中包含字串,如C#中的contain相关的知识,希望对你有一定的参考价值。

可用instr函数。

如:

select instr(\'sdfcontain234\',\'contain\') from dual;

结果:

如果返回值大于0,则表示字符串中包含contain。

再如:

select instr(\'sdfcontn234\',\'contain\') from dual;

结果:

如果返回值为0,则代表字符串中不包含contain。

参考技术A 用函数
instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1是你的源数据
string2是要查找的字符串
start_position是开始查找的位置,可选,不写则默认是1
nth_appearance是找第几次出现的,不写则默认是1,不可为负数
返回的结果是string2在string1中的位置
参考技术B 使用 某一列的值 like "%子字符串%" 参考技术C 正则表达式可以实现 参考技术D instr

UnityC#字串如何获取换行符号-最基础的字串处理方法,也最容易常见错误

C#里面的换行符号是 \\r\\n

(Java的换行符号就不是 \\r\\n 了?应该这是windows的换行符号,mac并不如此,)

以下内容并没在mac 和 linux测过(一般linux也不需要字符串)

网上小哥的错误代码

因为换行符是占两个位的

//永远判断错的代码
var a = textBox1.Text;
var c = Environment.NewLine;
string b = "";
foreach(var ch in a)

   if (ch.ToString() ==c)
      b += c;
   else
      b = ch + b;
   b += "\\n";

textBox2.Text = b;
Clipboard.SetText(b);

写了一小段代码测试一个个字符提取

确实是第一个是 \\r,第二个是 \\n (不是"\\\\r")

    IEnumerator StartTypeText()
        
            int count = sourceText.Length;
            int curr = 1;
            var newLine = Environment.NewLine;
            while (curr<=count)
            
                var code = sourceText.Substring(curr - 1, 1);
                if (code == newLine)//同理,获取不到newLine的
                
                    Debug.LogError("newLine newLine newLine newLine");
                

                if (code == "\\r")
                
                    var next = sourceText.Substring(curr, 1);
                    //Debug.LogError("is \\\\\\\\\\\\\\r next="+sourceText.Substring(curr, 1) );
                    if (sourceText.Length > curr)
                    
                        if (sourceText.Substring(curr, 1) == "\\n")
                        
                            Debug.LogError("is refresh.....");
                            //碰到换行符号
                            code = "\\r\\n";
                            curr++;
                            Refresh(true,true);
                        
                    
                

                inputField.text = inputField.text + code;
                
                Debug.LogError(sourceText.Substring(curr-1,1));
                yield return new WaitForSeconds(typeTextInterval);
                curr++;
            
            yield return null;
        

小哥的小哥的建议方法,

一行行读取也是可行的,因为绕开了逐个字扫描+自行判断

String a = textBox1.Text;
String result = String.Empty;

String[] lines = a.Split(new String[]  Environment.NewLine , StringSplitOptions.None);

foreach(String line in lines.Reverse())

    // inverse text
    foreach(char ch in line.Reverse())
    
        result += ch;
    

    // insert a new line
    result += Environment.NewLine;


// remove last NewLine
result = result.Substring(0, result.Length - 1);

示例:输入,如果您有:
test
yopla

结果将是:
alpoy
tset

其他方法:

懂了原理,就能调试了,其他请自行发挥

以上是关于ORACLE怎样判断一个串中包含字串,如C#中的contain的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE有没有判断一个字串里面包含令一个字串的函式

写一个C程序完成字串替换操作,将串s中的字串t全部换成串v

c#怎么判断字符串中包含汉字?

UnityC#字串如何获取换行符号-最基础的字串处理方法,也最容易常见错误

UnityC#字串如何获取换行符号-最基础的字串处理方法,也最容易常见错误

C语言简单的字符串、字符处理问题求助