- ベストアンサー
String型の値が大文字か小文字か判定する
いつもお世話になっています。 String型の値が、大文字か小文字か判定することはできないのでしょうか? char型だと Charactereクラスを使用し判定が可能なのですが。 ◆char型の場合◆ List list = new ArrayList(); //比較する文字列 String mozi = "Abc"; //ループ for(int m=0;m<mozi.length();m++) { //文字を順に小文字かどうか調べる char ccc = mozi.charAt(m); //小文字の場合に限りlistに格納 if(Character.isLowerCase(ccc) == true) { list.add(ccc); } } //表示 for(int l=0;l<list.size();l++) { System.out.println("list="+list.get(l)); } したいのが、 ◆String型◆ List list = new ArrayList(); List list2 = new ArrayList(); list.add("TEST"); list.add("sam"); list.add("OSIETE"); for(int l=0;l<list.size();l++ ) { String compareMozi =(String) list.get(l); //ここで文字列compareMoziが大文字か小文字か調べて、小文字のときだけlist2に格納する } な感じです。 宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
本当に読みましたか? 参考ページの 具体的な使い方 ■パターンマッチ ここでは「JavaでHello World」という文字列が「^Java.*」にマッチするか調べています。マッチするので最後のbはtrueになります。 部分でJavaで始まる文字列かどうかマッチさせてる例がありますから これがJavaで始まる文字列の部分が小文字のみで構成されているに 変更する用修正すればできるはずですよ 正規表現としては 小文字から始まる一回以上の繰り返しが最後まで続くという形で かければできると思いますよ
その他の回答 (5)
- hk_java2
- ベストアンサー率44% (8/18)
commonsが使えるなら、 org.apache.commons.lang.StringUtils#containsAny(java.lang.String str, java.lang.String searchChars) org.apache.commons.lang.StringUtils#indexOfAny(java.lang.String str, java.lang.String searchChars) という手も有り。
お礼
遅くなりました。 こんなものもあったんですね。参考にさせていただきます。 ありがとうございました。
if ( compareMozi.toLowerCase().equals( compareMozi ) ) { // 全部小文字 list2.add( compareMozi ); }
補足
回答ありがとうございます。 参考にさせて頂きます。 ありがとうございました。
- Tacosan
- ベストアンサー率23% (3656/15482)
たぶん正規表現を使うのが最も簡単だと思う. ん~と, ^\p{Ll}*$ あるいは ^[\p{Ll}]*$ かな? 「*」じゃなくて「+」が正しいかもしれんけど. 「1文字ずつ調べる」のは茨の道を覚悟した方がいいと思う.
補足
回答ありがとうございます。 > ^\p{Ll}*$ あるいは ^[\p{Ll}]*$ これはどう解釈したらいいのでしょうか? この場合のpはどういう意味なのでしょうか? 正規表現だと、 Pattern pattern; Matcher matcher; //Aから小文字かどうかを設定する pattern = Pattern.compile("[a-z].+"); matcher = pattern.matcher("AaaAF"); boolean match = matcher.matches(); System.out.println("Match:"+match); ような形で実現できたのですが。 宜しくお願いします。
- kana_m
- ベストアンサー率40% (26/65)
文字列の中身が全部大文字、全部小文字の2パターンしかないのであれば 文字列が1文字以上の場合に先頭1文字をcharで取得して CharacterクラスのisLowerCaseメソッドで判定するとか。
補足
回答ありがとうございます。 >文字列の中身が全部大文字、全部小文字の2パターンしかないのであれば 文字列が1文字以上の場合に先頭1文字をcharで取得して CharacterクラスのisLowerCaseメソッドで判定するとか。 確かにその方法は、使えますね。 ただ、どうしても、String型の文字全体で、大文字か小文字かを判定したいのです。 宜しくお願いします。
- kichiwave
- ベストアンサー率41% (10/24)
正規表現を使って文字列が 大文字だけで構成されているかどうか調べてやってみては どうでしょうか? 正規表現クラスの使い方は http://www.hellohiro.com/regex.htm それか文字列を一度すべて大文字にしてしまったものを 大文字にする前の文字列と比べて同じかどうか という判定もできるかなと
補足
回答ありがとうございます。 正規表現ですが、調べてみたのですが、 どれを使用すべきなのかがよくわかりません。 具体的にどれを使用すればいいのか教えて頂けないでしょうか? >それか文字列を一度すべて大文字にしてしまったものを 大文字にする前の文字列と比べて同じかどうか という判定もできるかなと 確かに、これは便利ですね。参考にさせていただきます。 宜しくお願いします。
補足
回答ありがとうございます。 何とか解決できました。 どうやら、見落としていたところがあったみたいです。 ありがとうございました。