8

Javaで文字列の1次元配列を取得しました。すべての文字列を小文字に変更し、後で元の配列と比較して、文字列/配列に大文字がないかどうかをプログラムにチェックさせることができます。

x.toLowercase を使用してみましたが、それは単一の文字列でのみ機能します。文字列全体を小文字に変換する方法はありますか?

よろしく、 ブランド

4

11 に答える 11

5

短い例が必要な場合は、次のようにすることができます

String[] array = ...
String asString = Arrays.toString(array);
if(asString.equals(asString.toLowerCase())
   // no upper case characters.
于 2011-12-07T13:31:20.263 に答える
3

たった2行

     String[] array = {"One", "Two"};
    for(int i=0;i<array.length;i++){
        if(!array[i].equals(array[i].toLowerCase()))
            System.out.println("It contains uppercase char");
        array[i] = array[i].toLowerCase();
    }
    for(int i=0;i<array.length;i++)
        System.out.println(array[i]);

出力:

It contains uppercase char
It contains uppercase char
one
two
于 2011-12-07T13:19:17.113 に答える
2

Java でコレクションのすべての要素に対してメソッドを呼び出す簡単な方法はありません。正しいサイズの新しい配列を手動で作成し、元の配列の要素を調べて、小文字のアナログを新しい配列に順次追加する必要があります。

ただし、具体的に何をしようとしているのかを考えると、これを行うために配列全体を一度に比較する必要はなく、すべてをコピーするコストが発生します。配列を単純に反復処理できます。小文字バージョンと等しくない要素falseが見つかった場合は、 を返すことができます。そのような要素が見つからずに配列の最後に到達した場合は、 を返すことができますtrue

次の理由から、これは実際にはより効率的です。

  • 大文字を含む要素が見つかった場合は、さらなる評価を省略できます。(100 万文字列の配列の最初の要素が大文字である場合を想像してください。これで、lowercase() の 100 万回の呼び出しを節約できました)。
  • 比較を超えて使用しない余分な配列全体にメモリを割り当てる必要はありません。
  • 最良のシナリオでも、提案されたシナリオでは、配列を 1 回反復して小文字のバージョンを取得し、次に配列を介して別の反復を実行して等号を実装します。ショートサーキットの可能性がなくても、1 回の反復で両方を行う方が効率的である可能性があります。
于 2011-12-07T13:17:59.083 に答える
0

次の 2 つの手順が必要です。

  1. 文字列の配列を反復処理する
  2. それぞれを小文字に変換します。
于 2011-12-07T13:16:38.743 に答える
0

文字列の配列を単一の文字列に変換してから小文字に変換できます。以下のサンプル コードに従ってください。

public class Test {

public static void main(String[] args) {
    String s[]={"firsT ","seCond ","THird "};
    String str = " ";
      for (int i = 0; i < s.length; i++) {
      str = str + s[i];
      }

      System.out.println(str.toLowerCase());

}
}
于 2011-12-07T13:32:26.550 に答える
0

1 行のコードでそれを行うことができます。ループすることなく、次のスニペットをコピーして貼り付けるだけです。

String[] strArray = {"item1 Iteme1.1", "item2", "item3", "item4", "etc"}//This line is not part of the single line (=D).

String strArrayLowerCase[] = Arrays.toString(strArray).substring(1)
            .replace("]", "").toLowerCase().split(",");


ハッピーストリングライフ。=D

于 2019-08-26T07:17:56.707 に答える