Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android開発】TextViewのテキストから単語数をカウントして表示する方法

このチュートリアルでは、AndroidアプリでTextViewに表示したテキストの単語数をカウントして出力する方法を解説します。split()メソッドを使った基本的なテキスト処理の手法を、サンプルコード付きでステップごとに学べます。

ステップ1:新規プロジェクトを作成する

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。

ステップ2:レイアウトファイル(activity_main.xml)を編集する

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:layout_marginTop="100dp"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/text"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </TextView>
</LinearLayout>

上記のコードでは、段落テキストを表示するためのTextViewを1つ配置しています。単語数の情報は、後述のJavaコードによってToast(トースト通知)として画面に表示される仕組みです。

ステップ3:MainActivity.java を編集する

src/MainActivity.java に以下のコードを追加します。

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    TextView text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = findViewById(R.id.text);
        text.setText("Lorem Ipsum is simply dummy text of the printing and typesetting industry. "
                + "Lorem Ipsum has been the industry's standard dummy text ever since the "
                + "1500s, when an unknown printer took a galley of type and scrambled it to "
                + "make a type specimen book. It has survived not only five centuries, but "
                + "also the leap into electronic typesetting, remaining essentially unchanged. "
                + "It was popularised in the 1960s with the release of Letraset sheets "
                + "containing Lorem Ipsum passages, and more recently with desktop publishing "
                + "software like Aldus PageMaker including versions of Lorem Ipsum.");
        String[] para = text.getText().toString().split("\\s+");
        Toast.makeText(MainActivity.this, "" + para.length, Toast.LENGTH_LONG).show();
    }
}

ポイントは split("\\s+") の部分です。この正規表現は「1つ以上の空白文字」を区切りとして扱うため、スペースや改行が連続していても正しく単語に分割できます。分割後の配列の要素数(para.length)がそのまま単語数となり、Toastで画面に表示されます。

アプリを実行して結果を確認する

それでは、アプリケーションを実行してみましょう。ここでは、実際のAndroidスマートフォンをパソコンに接続しているものとします。

Android Studioでプロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。接続済みのモバイルデバイスを選択すると、スマートフォン側でアプリが起動し、以下のように単語数がToastで表示されます。

【Android開発】TextViewのテキストから単語数をカウントして表示する方法

  1. 【Android】TextViewでテキストを両端揃え(ジャスティファイ)表示する方法

    概要 本記事では、AndroidアプリのTextViewに表示するテキストを両端揃え(ジャスティファイ)にする方法を、サンプルコードとともにわかりやすく解説します。 TextViewで両端揃えを実現するには、android:justificationMode=inter_wordを指定するだけです。この機能はAndroid 8.0(APIレベル26)以降で有効になるため、それ以前のOSバージョンでは無視される点に注意してください。 手順1:新規プロジェクトを作成する まず、Android Studioを起動し、メニューから「File」⇒「New Project」を選択します。必要な項目をす

  2. 【Android】TextViewでテキストを両端揃え(ジャスティファイ)表示する方法を徹底解説

    この記事では、AndroidアプリのTextViewでテキストを両端揃え(ジャスティファイ)表示する方法を、実際のサンプルコードをもとに段階的に解説します。RecyclerViewを使ったリスト表示の実装例もあわせて紹介するので、Androidアプリ開発の基礎固めとしても役立つ内容です。 手順1:Android Studioで新規プロジェクトを作成する まずはAndroid Studioを起動し、メニューから「File」→「New Project」を選択します。必要な設定項目をすべて入力して、新しいプロジェクトを作成しましょう。 手順2:res/layout/activity_main.xml