- 締切済み
文字列のエラーチェック
Javaをはじめて間もないので、基本的なことなのかもしれませんが、回答いただけると嬉しいです。 (1)文字の空白チェック、AllSpace (2)文字列が数字かどうかチェック、convertAllDigit (3)文字列が英字かどうかチェック、AllCharacter (4)英数字の半角処理? convertHalfSize の使い方がいまいちよくわからず困っています。 よいサンプルや例がありましたら教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
それっぽいメソッドを作ってみました。 チェックデータはファイルにして与えてください。 与えるデータはプラットフォームに依存します。 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()); }; }; }
- chi-kon
- ベストアンサー率43% (58/132)
チェックなのになぜconvertなんでしょう。 勉強での質問であるならば 上記のことを実装するだけならば Stringクラスのメソッドだけで可能なので まずロジック重視でくんでみたらどうでしょうか? ある配列を定義しておき 文字列を一文字ずつチェック(charAtでもsubstringでもつかってください) 同じものがあったらtrueやらfalseやらを返すっていう つくりで(1)~(3)までは対応できるでしょう。 (4)は全角→半角の変換をさしているのでしょうか? 業務で行っているのであれば、 そういうことは共通関数つくってる人に聞いてください。 たいてい共通関数作ってる人が用意してくれるので それを使えばいいでしょう。 とりあえず#1の方がおっしゃってるとおり 質問の仕方があいまいすぎるので 的確な答えを得るまでに何回かやりとりを 行わないといけないですな(~~) 文章を見る限りSEやPG関係者ではないか もしくはそのタマゴなのかとお見受けいたしますが、 どちらにしても質問の仕方がイマイチです。。。
- UKY
- ベストアンサー率50% (604/1207)
使い方も何も、AllSpaceやらconvertAllDigitやらが一体何者なのか分かりません。何かの参考書についているサンプルに出てくるとか、そういうものでしょうか? 少なくともAllSpaceやconvertAllDigitはJavaで一般的に広く使われている言葉ではないので、いきなり使い方はと聞かれても聞かれたほうが困ってしまいます。 詳細を補足してください。