0
0

More than 3 years have passed since last update.

【忘備録】Java : 文字列検索

Posted at

はじめに

trimcontainsはよく使うと思います。

String検索

1, contains

文字列内に特定文字列が含まれるか検索。
小文字、大文字は区別している
含まれるならtrue
含まれないならfalse

StringSearch.java
public class StringSearch {
    public static void main(String[] args) {
        String JAVA = "Java";
        String RUBY = "Ruby";
        String SOFTWARE = "Software";

        String word1 = "I study Java";
        String word2 = "I made app made by Ruby on rails";
        String word3 = "I want to be Software developer";

        boolean javaValid = word1.contains(JAVA);
        boolean rubyValid = word2.contains(RUBY);
        boolean softwareValid = word3.contains(SOFTWARE);

        System.out.println("\"I study Java\".contains(\"Java\") : "+javaValid);
        System.out.println("\"I made app made by Ruby on rails\".contains(\"Ruby\") : "+rubyValid);
        System.out.println("\"I want to be Software developer\".contains(\"Software\") : "+softwareValid);

        boolean result = word1.contains("java");
        System.out.println("\"Java\".contains(\"java\") : "+result);
    }
}
結果.java

        "I study Java".contains("Java") : true
        "I made app made by Ruby on rails".contains("Ruby") : true
        "I want to be Software developer".contains("Software") : true
        "Java".contains("java") : false

2, startsWith

ある文字列が特定の文字列で始まるか判定。
小文字、大文字は区別している
空白も最初の一文字と判定する
始まるならtrue
始まらないならfalse

sample.java

        String word4 = "JavaScript";
        String word5 = " JavaScript";
        boolean starts1 = word4.startsWith("J");
        boolean starts2 = word4.startsWith("j");
        boolean startsWithSpace1 = word5.startsWith("J");
        boolean startsWithSpace2 = word5.startsWith(" ");

        System.out.println("\"JavaScript\".startsWith(\"J\") : " + starts1);
        System.out.println("\"JavaScript\".startsWith(\"j\") : " + starts2);
        System.out.println("\" JavaScript\".startsWith(\"J\") : " + startsWithSpace1);
        System.out.println("\" JavaScript\".startsWith(\" \") : " + startsWithSpace2);
結果.java
        "JavaScript".startsWith("J") : true
        "JavaScript".startsWith("j") : false
        " JavaScript".startsWith("J") : false
        " JavaScript".startsWith(" ") : true

3, endsWith

ある文字列が特定の文字列で終わるか判定。
小文字、大文字は区別している
空白も最後の一文字と判定する
終わるならtrue
終わらないならfalse

sample.java

        String word4 = "JavaScript";
        String word5 = " JavaScript ";

        boolean end1 = word4.endsWith("t");
        boolean end2 = word4.endsWith("T");
        boolean endWithSpace1 = word5.endsWith("t");
        boolean endWithSpace2 = word5.endsWith(" ");
        System.out.println("\"JavaScript\".endsWith(\"t\") : " + end1);
        System.out.println("\"JavaScript\".endsWith(\"T\") : " + end2);
        System.out.println("\" JavaScript \".endsWith(\"t\") : " + endWithSpace1);
        System.out.println("\" JavaScript \".endsWith(\" \") : " + endWithSpace2);

結果.java

        "JavaScript".endsWith("t") : true
        "JavaScript".endsWith("T") : false
        " JavaScript ".endsWith("t") : false
        " JavaScript ".endsWith(" ") : true

String変換

1, toLowerCase

ある文字列にこのメソッドを使用すると全て小文字に変換してくれる。
日本語を渡してもエラーにはならない。

sample.java

        String onlyUpper = "JAVASCRIPT";
        String onlyLower = "javascript";
        String mixed = "JaVaScRiPt";
        String onlyLowerWithSpace = "i love java";
        String onlyUpperWithSpace = "I LOVE JAVA"; 
        String mixedWithSpace = "I lOvE jAvA";
        String japanese = "こんにちは。今日は晴れてます。";

        String expectLower1 = onlyUpper.toLowerCase();
        String expectLower2 = onlyLower.toLowerCase();
        String expectLower3 = mixed.toLowerCase();
        String expectLower4 = onlyLowerWithSpace.toLowerCase();
        String expectLower5 = onlyUpperWithSpace.toLowerCase();
        String expectLower6 = mixedWithSpace.toLowerCase();
        String expectLower7 = japanese.toLowerCase();

        System.out.println("\"JAVASCRIPT\".toLowerCase() => " + expectLower1);
        System.out.println("\"javascript\".toLowerCase() => " + expectLower2);
        System.out.println("\"JaVaScRiPt\".toLowerCase() => " + expectLower3);
        System.out.println("\"i love java\".toLowerCase() => " + expectLower4);
        System.out.println("\"I LOVE JAVA\".toLowerCase() => " + expectLower5);
        System.out.println("\"I lOvE jAvA\".toLowerCase() => " + expectLower6);
        System.out.println("\"こんにちは。今日は晴れてます。\".toLowerCase() => " + expectLower7);
結果.java
        "JAVASCRIPT".toLowerCase() => javascript
        "javascript".toLowerCase() => javascript
        "JaVaScRiPt".toLowerCase() => javascript
        "i love java".toLowerCase() => i love java
        "I LOVE JAVA".toLowerCase() => i love java
        "I lOvE jAvA".toLowerCase() => i love java
        "こんにちは。今日は晴れてます。".toLowerCase() => こんにちは今日は晴れてます

2, toUpperCase

ある文字列にこのメソッドを使用すると全て大文字に変換してくれる。

sample.java
        String onlyUpper = "JAVASCRIPT";
        String onlyLower = "javascript";
        String mixed = "JaVaScRiPt";
        String onlyLowerWithSpace = "i love java";
        String onlyUpperWithSpace = "I LOVE JAVA"; 
        String mixedWithSpace = "I lOvE jAvA";
        String japanese = "こんにちは。今日は晴れてます。";

        String expectUpper1 = onlyUpper.toUpperCase();
        String expectUpper2 = onlyLower.toUpperCase();
        String expectUpper3 = mixed.toUpperCase();
        String expectUpper4 = onlyLowerWithSpace.toUpperCase();
        String expectUpper5 = onlyUpperWithSpace.toUpperCase();
        String expectUpper6 = mixedWithSpace.toUpperCase();
        String expectUpper7 = japanese.toUpperCase();

        System.out.println("\"JAVASCRIPT\".toUpperCase() => " + expectUpper1);
        System.out.println("\"javascript\".toUpperCase() => " + expectUpper2);
        System.out.println("\"JaVaScRiPt\".toUpperCase() => " + expectUpper3);
        System.out.println("\"i love java\".toUpperCase() => " + expectUpper4);
        System.out.println("\"I LOVE JAVA\".toUpperCase() => " + expectUpper5);
        System.out.println("\"I lOvE jAvA\".toUpperCase() => " + expectUpper6);
        System.out.println("\"こんにちは。今日は晴れてます。\".toUpperCase() => " + expectUpper7);
結果.java
        "JAVASCRIPT".toUpperCase() => JAVASCRIPT
        "javascript".toUpperCase() => JAVASCRIPT
        "JaVaScRiPt".toUpperCase() => JAVASCRIPT
        "i love java".toUpperCase() => I LOVE JAVA
        "I LOVE JAVA".toUpperCase() => I LOVE JAVA
        "I lOvE jAvA".toUpperCase() => I LOVE JAVA
        "こんにちは。今日は晴れてます。".toUpperCase() => こんにちは今日は晴れてます

3, trim

ある文字列に含まれる前後の空白を削除する。
注意:空白を削除するのは前後のみで文字列中の空白は削除しない。

sample.java
        String trim1 = "  Java and JavaScript  ";
        String trim2 = "Java and JavaScript";

        String afterTrim1 = trim1.trim();
        String afterTrim2 = trim2.trim();

        System.out.println("\"  Java and JavaScript  \".length() => " + trim1.length());
        System.out.println("\"  Java and JavaScript  \".trim().length() => " + afterTrim1.length());
        System.out.println("\"  Java and JavaScript  \".trim() => " + afterTrim1);

        System.out.println("\"Java and JavaScript\".length() => " + trim2.length());
        System.out.println("\"Java and JavaScript\".trim().length() => " + afterTrim2.length());
        System.out.println("\"Java and JavaScript\".trim() => " + afterTrim2);
結果.java
        "  Java and JavaScript  ".length() => 23
        "  Java and JavaScript  ".trim().length() => 19
        "  Java and JavaScript  ".trim() => Java and JavaScript
        "Java and JavaScript".length() => 19
        "Java and JavaScript".trim().length() => 19
        "Java and JavaScript".trim() => Java and JavaScript

4, replace

ある文字列に含まれる特定の文字列を任意の文字列に置き換える。
小文字、大文字は区別している

sample.java
        String beforeRep = "I like Java and Ruby, Python";
        String afterRep1 = beforeRep.replace("Java", "Golang");
        String afterRep2 = beforeRep.replace("java", "Golang");

        System.out.println("\"I like Java and Ruby, Python\".replace(\"Java\", \"Golang\") => " + afterRep1);
        System.out.println("\"I like Java and Ruby, Python\".replace(\"java\", \"Golang\") => " + afterRep2);
結果.java
"I like Java and Ruby, Python".replace("Java", "Golang") => I like Golang and Ruby, Python
"I like Java and Ruby, Python".replace("java", "Golang") => I like Java and Ruby, Python
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0