こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

文字列のエラーチェック

Javaをはじめて間もないので、基本的なことなのかもしれませんが、回答いただけると嬉しいです。

(1)文字の空白チェック、AllSpace
(2)文字列が数字かどうかチェック、convertAllDigit
(3)文字列が英字かどうかチェック、AllCharacter
(4)英数字の半角処理? convertHalfSize

の使い方がいまいちよくわからず困っています。
よいサンプルや例がありましたら教えていただけると助かります。

投稿日時 - 2004-07-19 21:38:42

QNo.932384

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

 それっぽいメソッドを作ってみました。
チェックデータはファイルにして与えてください。
与えるデータはプラットフォームに依存します。

import java.io.*;

public class charck {

private static boolean AllSpace(String s) {
int i;
for (i = 0; i < s.length(); i ++)
if (!Character.isSpaceChar(s.charAt(i))) break;
return(i == s.length());
};

private static boolean CheckAllDigit(String s) {
return(s.matches("[[0-9][0-9]]*"));
};

private static boolean CheckAllAlpha(String s) {
return(s.matches("[[a-z][A-Z][a-z][A-Z]]*"));
};

private static String ConvertHalfSize(String s) {
int i, j;
StringBuffer sb = new StringBuffer();
byte b[], c[] = new byte[1];
for (i = 0; i < s.length(); i ++) {
try {
b = Character.toString(s.charAt(i)).getBytes("UTF-16BE");
c[0] = 0;
if (b.length == 2) if (b[0] == -1)
if (((b[1] >= 0x10) && (b[1] <= 0x19)) ||
((b[1] >= 0x21) && (b[1] <= 0x3A)) || ((b[1] >= 0x41) && (b[1] <= 0x5A)))
c[0] = (byte)(b[1] + 0x20);
if (c[0] == 0) sb.append(s.charAt(i));
else sb.append(new String(c, "ISO-8859-1"));
} catch (Exception ex) { sb.append('?'); };
};
return(new String(sb.toString()));
};

public static void main(String args[]) {

try {

BufferedReader br = new BufferedReader(new FileReader(args[0]));
String s;

while ((s = br.readLine()) != null) {
System.out.println(s + ":");
System.out.print(AllSpace(s) ? "o" : "x");
System.out.print(CheckAllDigit(s) ? "o" : "x");
System.out.print(CheckAllAlpha(s) ? "o" : "x");
System.out.println(":" + ConvertHalfSize(s));
};

} catch (Exception ex) { System.out.println(ex.toString()); };

};

}

投稿日時 - 2008-09-25 22:12:14

ANo.2

チェックなのになぜconvertなんでしょう。

勉強での質問であるならば
上記のことを実装するだけならば
Stringクラスのメソッドだけで可能なので
まずロジック重視でくんでみたらどうでしょうか?

ある配列を定義しておき
文字列を一文字ずつチェック(charAtでもsubstringでもつかってください)
同じものがあったらtrueやらfalseやらを返すっていう
つくりで(1)~(3)までは対応できるでしょう。
(4)は全角→半角の変換をさしているのでしょうか?

業務で行っているのであれば、
そういうことは共通関数つくってる人に聞いてください。
たいてい共通関数作ってる人が用意してくれるので
それを使えばいいでしょう。

とりあえず#1の方がおっしゃってるとおり
質問の仕方があいまいすぎるので
的確な答えを得るまでに何回かやりとりを
行わないといけないですな(~~)

文章を見る限りSEやPG関係者ではないか
もしくはそのタマゴなのかとお見受けいたしますが、
どちらにしても質問の仕方がイマイチです。。。

投稿日時 - 2004-07-19 23:11:53

ANo.1

UKY

使い方も何も、AllSpaceやらconvertAllDigitやらが一体何者なのか分かりません。何かの参考書についているサンプルに出てくるとか、そういうものでしょうか?

少なくともAllSpaceやconvertAllDigitはJavaで一般的に広く使われている言葉ではないので、いきなり使い方はと聞かれても聞かれたほうが困ってしまいます。

詳細を補足してください。

投稿日時 - 2004-07-19 22:46:58

あなたにオススメの質問