- PR -

文字列比較について

投稿者投稿内容
ひっき
会議室デビュー日: 2005/07/09
投稿数: 4
投稿日時: 2005-07-09 21:28
頭で考えている通りにプログラムができなくなってしまったので教えてください!!


20文字の文字列があったとして

・1文字目がAであるか?
・3文字目が英数字であるか?
・5文字目がA〜MまたはU〜Vであるか?
・9文字目がスペースか英字であるか?
・10文字目がDかiであるか?
・12文字目が数字であるか?

というのをbooleanとif文で組みたいと思っています。「なんだ簡単ジャン!」と思われるかと思いますが、どういうプログラムになるのか参考にできるプログラムを教えてください。

せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2005-07-09 21:37
学校の宿題みたいですね。

頭で考えてどうやろうとしたのか、どこまでやって、どこがわからないのか、
まずは、教えてください。
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-07-09 21:42
どもども

正規表現使えばよろしいかと・・・
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-07-10 01:53
$a =~ /^A.[A-Za-z0-9].[A-MU-V].{3}[\sA-Za-z][Di].\d/;

え、全部 and じゃない?
しかも perl じゃない?
# (暑いので|天然|わざと)ボケました

まずはひっきさんの「頭で考えている通り」の内容はテレパスでもない限りひっきさん以外の人にはわかりません。
そして、それがわからないことには一向に話になりません。
Willy
会議室デビュー日: 2005/07/10
投稿数: 2
投稿日時: 2005-07-10 02:08
「x文字目は〜でないとだめっす」的なメッセージを出したいなら、
やっぱり普通のチェックがいい気もします。誰でも読めるし。
ひっき
会議室デビュー日: 2005/07/09
投稿数: 4
投稿日時: 2005-07-10 10:09
自分がどこがわからないのかが説明不足ですみません・・・

まず、1文字目の'A'であるか確かめるのは、文字コードで調べるのではなく直接「'A'という文字」を調べるプログラムはできないのでしょうか?

「A〜M」という範囲の指定方法もわかりません・・

英数字かどうかの判定はisLetterOrDigit()を使えばよいような気がしますがこれでよいでしょうか?




かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-07-10 10:27
じゃあ、簡単に。

String hoge = "ABCDE";

if(hoge.charAt(0) == 'A'){
...
}
if('A' <= hoge.charAt(1) && hoge.charAt(2) <= 'M'){
...
}

ひっき
会議室デビュー日: 2005/07/09
投稿数: 4
投稿日時: 2005-07-10 11:12
ありがとうございます!!

もしよろしければ、最初の質問文をif文でつなげたサンプルプログラムを教えていただけませんでしょうか?

よろしくお願いいたします。

スキルアップ/キャリアアップ(JOB@IT)