当前位置:网站首页>[groovy] string (string injection function | asBoolean | execute | minus)

[groovy] string (string injection function | asBoolean | execute | minus)

2022-07-05 03:12:00 Programmer community

List of articles

  • One 、 String injection function
    • 1、 String to Boolean asBoolean function
    • 2、 Execute the command corresponding to the string execute function
    • 3、 String subtraction minus function
  • Two 、 Complete code example

One 、 String injection function


Groovy by character string class , Injected a series of methods , Here are some important injection methods ; by Groovy String extension function , It's all defined in

public class StringGroovyMethods extends DefaultGroovyMethodsSupport

Class ;

1、 String to Boolean asBoolean function

A function that converts a string to a Boolean value :

  • String length is 0 , Then return to false ;
  • String length greater than 0 , return true ;
"".asBoolean();

Injected asBoolean function :

public class StringGroovyMethods extends DefaultGroovyMethodsSupport { 
    	/** *  The string (CharSequence Example ) Force to Boolean . *  If the length of the string is 0, The string is forced to false, *  vice versa . * * @param  String specifies the character sequence  * @ Returns a Boolean value  * @ from 1.7 Start .0 */    public static boolean asBoolean(CharSequence string) { 
            return string.length() > 0;    }}

Execute the following code :

class Test { 
        static void main(args) { 
            println "".asBoolean();    }}

Execution results :

false

2、 Execute the command corresponding to the string execute function

Call string execute() Method , This can be performed String command , The premise is that the string must be a system command , Can't be any string ;

Inject execute() function :

public class StringGroovyMethods extends DefaultGroovyMethodsSupport { 
    	/** *  take <code>self</code> The specified command is executed as a command line process . * <p> More control over process construction , You can use  * <code>java.lang.ProcessBuilder</code>. * * @param self  Command line string  * @ Returning this command line indicates the process just started  * @ In the event of a IOException Throw when IOException. * @ since 1.0 since  */    public static Process execute(final String self) throws IOException { 
            return Runtime.getRuntime().exec(self);    }}

Execute the following code :

class Test { 
        static void main(args) { 
            println "cmd /c groovy -v".execute().text    }}

Execution results :

Groovy Version: 3.0.9 JVM: 1.8.0_91 Vendor: Oracle Corporation OS: Windows 10

3、 String subtraction minus function

Subtract between two strings , Equivalent to from a large string , Delete the subtracted small string ;

Inject minus() function :

public class StringGroovyMethods extends DefaultGroovyMethodsSupport { 
    	/** *  Remove part of the string . This will replace the first event  *  The goal is . take self Medium toString() And “” matching , And return the result . * * @param self  character string  * @param target  Object representing the part to be removed  * @ Returns a string minus the part to be deleted  * @ since 1.0 since  */    public static String minus(String self, Object target) { 
            String text = DefaultGroovyMethods.toString(target);        int index = self.indexOf(text);        if (index == -1) return self;        int end = index + text.length();        if (self.length() > end) { 
                return self.substring(0, index) + self.substring(end);        }        return self.substring(0, index);    }}

Code example :

class Test { 
        static void main(args) { 
            println "HelloWorld" - "World"    }}

Execution results :

Hello

Two 、 Complete code example


Complete code example :

class Test { 
        static void main(args) { 
            println "".asBoolean();        println "cmd /c groovy -v".execute().text        println "HelloWorld" - "World"    }}

Execution results :

falseGroovy Version: 3.0.9 JVM: 1.8.0_91 Vendor: Oracle Corporation OS: Windows 10Hello

 Insert picture description here

原网站

版权声明
本文为[Programmer community]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140806222324.html