ホームページ Java &#&チュートリアル Java の文字列操作の概要 (コード例)

Java の文字列操作の概要 (コード例)

Feb 11, 2019 am 11:23 AM
java

この記事では、Java の文字列操作の概要 (コード例) を紹介します。必要な方は参考にしていただければ幸いです。

1. 文字列操作 String クラス

1. 概要

String は特別な参照データ型であり、最終的なものです。クラス。

2. 構築方法

String str = "abc";

は、char date[] = {'a',' と同等です。 b ','c'};

String str = new String{data};

3. メイン メソッド

char charAt(int Index ) char の指定されたインデックスの値を返します。

#boolean contains(CharSequence s) は、文字列に指定された char 値シーケンスが含まれる場合にのみ true を返します。

booleanquals(Object anObject) 部分文字列と指定されたオブジェクトを比較します

int indexOf(int ch) 指定された文字が最初に出現するインデックス値を返します

int length() 文字列の長さを返します。主にループの終了条件に使用されます

booleanmatches(String regex) 文字列が指定された正規表現に一致するかどうかを判断します

String replace(char oldChar,char newChar) 文字列内のすべての oldChar を newChar に置き換えます

String Split(String regex) ) ルールに従って文字列を分割します

String subString(int beginIndex) 文字列の beginindex インデックスの後の文字列を返します

String toLowerCase() 文字列内のすべての大文字を返します 小文字に変更しますLetters

String toUpperCase() 文字列内のすべての小文字を大文字に変更します

String Trim() 文字列から先頭と末尾のスペースをすべて削除し、return

/*型変換*/

static String valueOf(boolean b)
ブール パラメータの文字列ブール形式を返します。
static String valueOf(char c)
char パラメータの文字列 char 形式を返します。
static String valueOf(char[] data)
char 配列パラメータの文字列 char 形式を返します。
static String valueOf(char[] data, int offset, int count)
char 配列パラメータの特定の部分配列の文字列 char 形式を返します。
static String valueOf(double d)
double パラメータの文字列 double 形式を返します。
static String valueOf(float f)
float パラメータの文字列 float 形式を返します。
static String valueOf(int i)
int パラメータの文字列 int 形式を返します。
static String valueOf(long l)
long パラメータの文字列 long 形式を返します。
static String valueOf(Object obj)
Object パラメータの文字列オブジェクト形式を返します。

注: String 文字列 "==" と equals メソッドの違い:

String str = "" を通じて宣言されている場合は、== と equals の両方を使用できます。

##新しい文字列 ("") を通じて宣言されている場合、== は使用できません。使用できるのは等しいだけです。

4. デモ ケース


要件 1: 文字列内の大文字、小文字、数字の数を数える

アイデア: for ループを通じて文字列を取得し、charAt メソッドを使用して各文字を取得し、各文字を AsciI コードに対応する値と比較して、それが大文字、小文字、または数字であるかを判断し、その数を出力します。

/**
 * @ author: PrincessHug
 * @ date: 2019/2/7, 17:09
 * @ Blog: https://www.cnblogs.com/HelloBigTable/
 */
public class StringAPIDemo {
    /**
     * 需求:计算字符串中大写字母、小写字母、数字出现的次数
     * @param args 参数
     */
    public static void main(String[] args) {
        //通过用户输入得到一个字符串
        String str = getString();
        getCount(str);
    }
    private static void getCount(String str) {
        int upperNum = 0;
        int lowerNum = 0;
        int digit = 0;
        for (int i = 0;i< str.length();i++){
            char c = str.charAt(i);
            /**
             * AscII码数字1-9(48-57),A-Z(65-91),a-z(97-123)
             */
            if (c>=48 && c<=57){
                digit++;
            }
            if (c>=65 && c<=91){
                upperNum++;
            }
            if (c>=97 && c<=123){
                lowerNum++;
            }
        }
        System.out.println("数字出现的次数为:" + digit);
        System.out.println("大写字母出现的次数为:" + upperNum);
        System.out.println("小写字母出现的次数为:" + lowerNum);
    }
    private static String getString() {
        System.out.println("请输入一个字符串:");
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        return s;
    }
}
ログイン後にコピー

要件 2: 特定の部分文字列が親文字列に出現する回数をクエリする

アイデア 1: IndexOf メソッドを使用して、部分文字列が最初に出現するインデックス a をクエリします。このメソッドは、親文字列インデックス (部分文字列の長さ) の後の文字列を返し、1 をカウントします。この操作を、indexOf メソッドの戻り値が -1 になるまでループし、停止してカウント値を取得するだけです。

アイデア 2: 親文字列を部分文字列に分割するには、split メソッドを使用します。文字列配列を取得するには、subString メソッドを使用して、親文字列の最後の文字列が部分文字列と等しいかどうかを取得します。文字列配列の長さ。等しくない場合は、文字列配列の長さ 1 が返されます。

**
 * @ author: PrincessHug
 * @ date: 2019/2/7, 17:34
 * @ Blog: https://www.cnblogs.com/HelloBigTable/
 */
public class FindChildStringCount {
    /**
     * 需求:查询父字符串中某一个子字符串的数量
     * @param args
     */
    public static void main(String[] args) {
        String parent = "itstar123qweritstar()%%dfitstarsdgji";
        String child = "itstar";

        int num1 = getChildStringCount01(parent, child);
        int num2 = getChildStringCount02(parent,child);
        int num3 = getChildStringCount03(parent,child);
        System.out.println("方法一:" + num1 + "次。");
        System.out.println("方法二:" + num2 + "次。");
        System.out.println("方法三:" + num3 + "次。");
    }

    private static int getChildStringCount02(String parent, String child) {
        String[] s = parent.split(child);
        if (child.equals(parent.substring(parent.length()-child.length()))){
            return s.length;
        }else {
            return s.length-1;
        }
    }

    private static int getChildStringCount01(String parent,String child) {
        int num = 0;
        int index = 0;
        while ((index = parent.indexOf(child)) != -1){
            num++;
            parent = parent.substring(index + child.length());
        }

        return num;
    }
    private static int getChildStringCount03(String parent,String child){
        String[] s = parent.split(child);
        int sum = 0;
        for (int i = 0;i < s.length;i++){
            sum += s[i].length();
        }
        return sum==parent.length()-(s.length-1)*child.length()?s.length-1:s.length;
    }
}
ログイン後にコピー

5.文字列ルールの一致 (正規表現)

# 正規表現は、ID 番号、QQ 番号、電子メール アドレスなどを確認するためによく使用されます。

文字クラスとその意味:

[abc] => abc が使用できます

[a- zA-Z] =>A-z または A-Z を使用でき、両端は閉じた間隔です

[0-9]=>0 から 9 の数字を使用できます

\d => [0-9]

\D と同じ => 数字は使用できません

\w => [a-zA-Z0-9_] に等しい

x? => x が 1 回出現するか、1 回出現しないかを示します。 => x が 0 または 1 回出現することを示します。回数が増える

X{n} = > x が n 回出現することを示します

X{n,m} => x が n 回から m 回出現することを示します

X #^; => 正規表現の始まりを示します

& => 正規表現の終わりを示します

要件 1: qq 番号が正しいかどうかを確認します

qq 番号 条件:

(1) 桁は 5 ~ 15 桁です。

(2)开头数字不能为0

正则表达式为:regex = [1-9]\\d{4-14}

需求二:验证手机号码是否正确

手机号条件:

(1)位数为11位

(2)第一位为1

(3)第二位为3-9

正则表达式为:regex = [1]][3-9]\\d{9}  

需求三:验证邮箱是否正确

邮箱条件:

(1)@之前为邮箱名,字母、数字、下划线都可以

(2)@符号

(3)@之后为邮箱域名(qq.com/163.com.cn)

正则表达式为:regex = \\w+@[a-zA-Z0-9]+(\\.\\w{2,3})+

以下为需求一:验证qq号码是否正确,需求二、三只需将regex修改为对应的正则表达式即可。

/**
 * @ author: PrincessHug
 * @ date: 2019/2/7, 21:51
 * @ Blog: https://www.cnblogs.com/HelloBigTable/
 */
public class MatchQQ {
    public static void main(String[] args) {
        while (true) {
            String qq = getQQ();
            if (qq.equals("stop")){
                break;
            }else {
                matchQQ(qq);
            }
        }
    }

    /**
     * @return 返回获取的qq号
     */
    private static String getQQ() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的qq号");
        String s = sc.nextLine();
        return s;
    }

    /**
     * 验证qq号是否匹配regex表达式
     * @param qq 获得用户输入的qq号
     */
    private static void matchQQ(String qq) {
        String regex = qqRegex();
        if (qq.matches(regex)) {
            System.out.println("QQ号正确!");
        } else {
            System.out.println("QQ号错误!");
        }
    }

    /**
     * @return 返回qq的正则表达式
     */
    private static String qqRegex() {
        String regex = "[1-9][0-9]{4,14}";
        return regex;
    }
}
ログイン後にコピー

以上がJava の文字列操作の概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

未来を創る: まったくの初心者のための Java プログラミング 未来を創る: まったくの初心者のための Java プログラミング Oct 13, 2024 pm 01:32 PM

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

See all articles