情報処理技法 (Javaプログラミング)1 第4回 語句や文章を扱いたいときは?

Slides:



Advertisements
Similar presentations
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Advertisements

1 例題 ex3b ( 配列 ) 科学科プログラミング. 2 例題 : ex3b  以下の 3 つについて例題を進める ステップ 1 :配列 ステップ 2 :最小と最大 ステップ 3 :文字型の配列.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
プログラムのパタン演習 解説.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
JavaScript プログラミング入門 2006/11/10 神津.
情報処理演習C2 ファイル操作について (2).
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
~手続き指向からオブジェクト指向へ(Ⅰ)~
第2章 数値の入力と変数 scanfと変数をやります.
基礎プログラミングおよび演習 第9回
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング基礎I(再) 山元進.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
12: コマンドライン引数 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
JavaScript    プログラミング入門 3-2 Stringオブジェクト 2006/10/27 神津 健太.
12: コマンドライン引数 C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第8回 プログラミングⅡ 第8回
第6章 2重ループ&配列 2重ループと配列をやります.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
スクリプト言語を用いたPHITSの連続実行
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
第10章 char 文字列; 文字列を入力させるよ!.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
JAVA入門.
第二回 VB講座 電卓を作ろう.
プログラミング応用 printfと変数.
プログラミング論 II 2008年10月30日 文字列
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
プログラミング 4 記憶の割り付け.
第10章 これはかなり大変な事項!! ~ポインタ~
第1回 プログラムの基本 他人が読めるプログラムを書く.
前回の練習問題.
第7回 プログラミングⅡ 第7回
知能情報工学演習I 第8回( C言語第2回) 課題の回答
P n ポインタの基礎 5 q m 5 7 int* p; int 型の変数を指すポインタ int* q; int 型の変数を指すポインタ int n=5, m=7; int 型の変数 int array[3]; int* pArray[3]; p = &n; ポインタにアドレスを代入しているのでOK.
プログラミング基礎B 文字列の扱い.
4.リスト,シンボル,文字列.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
プログラミング 3 スタックとキュー.
C言語 はじめに 2016年 吉田研究室.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
データ構造とアルゴリズム 第11回 リスト構造(1)
統計ソフトウエアRの基礎.
第1章 いよいよプログラミング!! ~文章の表示 printf~
C言語① 開発環境とプログラムの記述方法 2011.04.22 2011.04.22 C言語① 開発環境とプログラムの記述方法.
プログラミング入門 電卓を作ろう・パートI!!.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
精密工学科プログラミング基礎 第7回資料 (11/27実施)
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
標準入出力、変数、演算子、エスケープシーケンス
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
プログラミング 4 文字列.
情報処理技法 (Javaプログラミング)1 第2回 コンピュータが情報を扱うには? (変数, データ型, 代入)
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング入門2 第5回 配列 変数宣言、初期化について
情報処理Ⅱ 小テスト 2005年2月1日(火).
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
12: コマンドライン引数 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
情報処理技法(Javaプログラミング)1 第8回 同じ処理を何回も繰り返すには?
Presentation transcript:

情報処理技法 (Javaプログラミング)1 第4回 語句や文章を扱いたいときは? 中鉢欣秀 Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

第4回の内容 文字列の扱い方 Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

前回の復習問題の解答 (ア)~(オ)を埋めなさい。 プログラムでデータを扱う時には、データを「(ア)」と呼ばれる箱に入れて扱う。 「(ア)」には名前をつけ、あらかじめどのような種類の「(イ)」であるか、予告しておく。この予告処理のことを「(ウ)」と呼ぶ。「(ア)」に具体的なデータを入れることを 「(エ)」と呼ぶ。そして、「(ア)」に入れられたデータを取り出して計算などに使うことを「(オ)」と呼ぶ。 解答: (ア) 変数 (イ) データ型 (ウ) 宣言(する) (エ)代入(する) (オ)参照(する) Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列の扱い Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列とは(p. 80) 文字を並べたもの 言葉や文章: コンピュータにとっては1文字1文字が並んでいるもの 言葉や文章: コンピュータにとっては1文字1文字が並んでいるもの コンピュータは意味をわかっているわけではない 例えば...blue 人間: 青い「色」と解釈 コンピュータ: 最初に「b」があり、その次に「l」があり、その次に「u」があり、最後に「e」という 文字の並びと解釈 人間の考え方も、コンピュータにあわせる Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列の扱い(p. 80) 文字列はいろいろな情報を持っている 文字列にはいろいろな操作ができる 文字の並び 文字列の長さ(文字の数) n番目の文字を取り出す m番目の文字からn番目の文字までで部分文字列を作る 文字列中の部分文字列を、別の文字列に置き換える etc. intやfloatなどの 数値とは扱い方が違う! Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

データ型(p. 81) 文字列のデータ型: String 変数を宣言する方法は、intやfloatなどと同じ 変数でない値を代入するときは、値を「"」で囲む 変数を代入するときは、「"」は不要 最初の「S」は大文字、あとは小文字 String str1, str2; str1 = "abc"; (「abc」は変数でない文字列) str1 = str2; (「str2」はString型の変数) ※変数でない値は、日本語でもOK Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列をつなげる(p. 85) 2つ以上の文字列をつなげるとき: 「+」記号でつなげる str3 = str1 + str2; 例1: str1の値が「abc」、 str2の値が「def」のとき、 str3に、str1とstr2をつなげた「abcdef」を代入したい str3 = str1 + str2; 例2: str1に「Hello」、 str2に「World」が入っているとき、 str3に「Hello, World!」を代入したい str3 = str1 + ", " + str2 + "!"; スペース ※1文字でも、文字列として扱うことができる Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

「"」が必要なときと不要なときをきちんと使い分けよう! String型のデータ(p. 82) 「"」で囲まれた言葉は、コンピュータにとってただの文字列 「"」で囲まれていない言葉は、コンピュータにとっては変数 String str: str = "abc"; str = abc; str = "abc" + def + "ghi"; ただの文字列なので問題なし 変数として扱われるので宣言をしていなければ コンパイルエラー ただの文字列なので問題なし 変数として扱われるので宣言をしていなければ コンパイルエラー 「"」が必要なときと不要なときをきちんと使い分けよう! Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列のつなげかた(p. 85) できあがりの文字列をイメージする 変数・単なる文字列ごとに分解する 変数や「"」つきの文字列に置き換える 変数・単なる文字列の間に「+」をつける 金額は1000円です。 金額は 1000 円です。 "金額は" payment "円です。" "金額は" + payment + "円です。" Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

エスケープシーケンス(1)(p. 83) プログラム中で扱うには、いくつか特殊な文字が存在 Ex. 「Hello, "World"!」というデータを扱いたい場合 String sentence; sentence = " Hello, " World " !"; ここからがデータと しての文字列 ここまでがデータと しての文字列 ??? 「"」の区別がつかない 変数でない文字列を囲むための「"」 データとしての「"」(「World」を強調するための「"」) Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

エスケープシーケンス(2)(p. 83) 特殊な文字の区別 プログラム中で何らかの処理の一部を表す文字 普通に書く 単なるデータとしての文字列の一部を表す文字 特殊な表記で書く 改行, \, Tab, ", ' エスケープシーケンス Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

エスケープシーケンス(3)(p. 83) 改行: 「\n」 Tab: 「\t」 "(ダブルクォーテーション): 「\"」 \: 「\\」 '(アポストロフィー): 「\'」 改行 "(ダブルクォーテーション) 例: Hello, "World"! Nice to meet you! I'm fine! Tab '(アポストロフィー) String str = "Hello, \" World\" ! \nNice to meet you! \n\t I \' m fine!" Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

考えてみよう! 教科書p. 111の例題01-02をやってみよう Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列に対する操作(p. 87) 文字列を扱うために、Javaには様々なメソッドが用意されている メソッドの形: String型の変数.メソッド名(引数, 引数, …) 引数の順番と数、データ型は、それぞれのメソッドで決まっている (「,」でつなげて書く) メソッドは、様々な処理をしてその結果を返してくれる →返してくれた結果(戻り値)を、変数に代入して使う(例えば、 int num=String型の変数.メソッド(…); のようにして使う) ※戻り値のデータ型はメソッドによって決まっている Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

メソッド(p. 87) プログラム中で行われる処理の手順をまとめたもの メソッド名、引数、戻り値(戻り値)から成る 複数の処理をまとめて、1つの名前を付けたもの メソッド名、引数、戻り値(戻り値)から成る メソッド名: メソッドの名前 引数: メソッドに渡す情報 戻り値(戻り値): メソッドから返される処理結果 多くの場合、戻り値を変数に代入して利用する 「変数名 = メソッド」で、変数に戻り値が代入される Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列の文字の数え方(p. 88) プログラムでは、文字列の文字は0番目から数える 文字の順番を表す番号を「インデックス」と呼ぶ 例えば...abcdefghij a: 0番目 b: 1番目 c: 2番目 ..... j: 9番目 Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

文字列の長さ(文字数)(p. 88) 「length()」というメソッドを使う 文字列型の変数.length(); int型で結果をもらう 例: int strLength; String str1="abc"; strLength: str1の文字数 str1の長さを求めたいときは? strLength=str1.length(); Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列の最初の出現場所(p. 89) あるインデックス以降で、部分文字列が最初に出現する場所 部分文字列: 文字列の一部 「indexOf(str)」というメソッドを使う int型で結果をもらう 「str」は探したい部分文字列 (String型) 文字列型の変数.indexOf(str); 例: int index; String str1="abcdefabcabcab"; str1での「abc」が最初に出てくる位置を求めたいときは? (答え: 0) index=str1.indexOf("abc"); ※探したい文字列がなかったときは、結果が「-1」になる Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列の出現場所(p. 91) あるインデックス以降で、部分文字列が最初に出現する場所 「indexOf(str, n)」というメソッドを使う int型で結果をもらう 「str」は探したい部分文字列 (String型) 「n」は、調べ始めるインデックス 文字列型の変数.indexOf(str, n); 例: int index; String str1="abcdefabcabcab"; str1のインデックス1以降で、「abc」が最初に出てくる位置を求めたいときは? (答え: 6) index=str1.indexOf("abc", 1); ※探したい文字列がなかったときは、結果が「-1」になる Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列の最後の出現場所(p. 93) あるインデックス以降で、部分文字列が最後に出現する場所 「lastIndexOf(str)」というメソッドを使う int型で結果をもらう 「str」は探したい部分文字列(String型) 文字列型の変数.lastIndexOf(str); 例: int index; String str1="abcdefabcabcab"; str1での「abc」が最後に出てくる位置を求めたいときは? (答え: 9) index=str1.lastIndexOf("abc"); ※探したい文字列がなかったときは、結果が「-1」になる Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列の出現場所(p. 95) あるインデックス以前で、部分文字列が最後に出現する場所 「lastIndexOf(str, n)」というメソッドを使う int型で結果をもらう 「str」は探したい部分文字列 (String型) 「n」は、調べ始めるインデックス 文字列型の変数.lastIndexOf(str, n); 例: int index; String str1="abcdefabcabcab"; str1のインデックス8以前で、「abc」が最後に出てくる位置を求めたいときは? (答え: 6) index=str1.lastIndexOf("abc", 8); ※探したい文字列がなかったときは、結果が「-1」になる Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列(1-1)(p. 97) m番目の文字からn番目の文字までで部分文字列 「substring(m, n+1)」というメソッドを使う 「文字列型の変数」: 元の文字列 String型で結果をもらう 文字列型の変数.substring(m, n+1) m: 部分文字列の最初の文字の、元の文字列での位置(int型) n: 部分文字列の最後の文字の、元の文字列での位置(int型) 例: 「abcdefghi」から、「def」という部分文字列を作りたい 部分文字列の最初の文字: d 「d」の元の文字列での位置: 3 部分文字列の最後の文字: f 「f」の元の文字列での位置: 5 mは3, nは5と考える Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列(1-2)(p. 97) m番目の文字からn番目の文字までで部分文字列 「substring(m, n+1)」というメソッドを使う 「文字列型の変数」: 元の文字列 String型で結果をもらう 文字列型の変数.substring(m, n+1) m: 部分文字列の最初の文字の、元の文字列での位置(int型) n: 部分文字列の最後の文字の、元の文字列での位置(int型) 「文字列型の変数.substring(m, n)」とすると... 「m」番目の文字は、新しい文字列に入る 「n」番目の文字は、新しい文字列には入らない m番目からn番目の文字列を作るときには、substringに「m」と「n+1」を渡す Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列(1-3)(p. 97) 例: String fullString="abcdefghi"; String shortString; fullStringの3番目から5番目の部分文字列を求めたいときは? (答え: def) shortString=fullString.substring(3, 6); 注意: 文字列は、0番目から数える Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列(2-1)(p. 99) m番目から最後の文字列までで部分文字列 「substring(m)」というメソッドを使う 「文字列型の変数」: 元の文字列 String型で結果をもらう 文字列型の変数.substring(m) m: 部分文字列の最初の文字の、元の文字列での位置(int型) 例: 「abcdefghi」から、「e」以降の部分文字列を作りたい 部分文字列の最初の文字: e 「e」の元の文字列での位置: 4 mは4と考える Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

部分文字列(2-2)(p. 99) 例: String fullString="abcdefghi"; String shortString; fullStringの4番目以降の部分文字列を求めたいときは? (答え: efghi) shortString=fullString.substring(4); 注意: 文字列は、0番目から数える Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

2つの文字列を比較(p. 104) 「equals(str)」というメソッドを使う 文字列型の変数.equals(str); 「str」は等しいか比べたい文字列(String型) boolean型で結果をもらう 文字列型の変数.equals(str); 例: String str1="abcdef"; String str2="abcijk"; str1とstr2は同じ文字列? (答え: false) str1.equals(str2); ※「str2」は変数でなくてもよい つまり、「str1.equals("abcdef");」という書き方もOK Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

半角アルファベットを小文字化 「toLowerCase()」というメソッドを使う 文字列型の変数.toLowerCase(); アルファベットが小文字になった結果をもらう (もらう結果はString型) 文字列型の変数.toLowerCase(); 例: String upper="ABCDEF"; String lower; upperを小文字にしたい (答え: abcdef) lower=upper.toLowerCase(); Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

半角アルファベットを大文字化 「toUpperCase()」というメソッドを使う 文字列型の変数.toUpperCase(); アルファベットが大文字になった結果をもらう (もらう結果はString型) 文字列型の変数.toUpperCase(); 例: String lower="abcdefghi"; String upper; lowerを小文字にしたい (答え: ABCDEFGHI) upper=lower.toLowerCase(); Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

よくある使い方 indexOf, lastIndexOf, substringを組み合わせて使う ある文字で区切られた文字列を分解する場合など 例えば...「,」で区切られた3つの言葉を1つ1つの言葉として取り出す場合 (「apple, pine, banana」を「apple」と「pine」と「banana」に分解) int m, n; String first, second, last, original = "apple,pine,banana"; m = original.indexOf(","); n = original.lastIndexOf(","); first = original.substring(0, m); second = original.substring(m + 1, n); last = original.substring(n + 1); Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.

やってみよう! 教科書p. 111の例題03-06をやってみよう Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.