Javaで文字列内の文字がアルファベット順かどうかをチェックする方法
Javaで文字列内の文字がアルファベット順(昇順)に並んでいるかどうかを判定するには、隣り合う文字同士を順番に比較していく方法が有効です。以下にその実装例を示します。
サンプルコード
public class Demo{
static boolean alphabetical_order(String my_str){
int str_len = my_str.length();
for (int i = 1; i < str_len; i++){
if (my_str.charAt(i) < my_str.charAt(i - 1)){
return false;
}
}
return true;
}
static public void main(String[] args){
String my_str = "abcmnqxz";
if (alphabetical_order(my_str)){
System.out.println("The letters are in alphabetical order.");
} else{
System.out.println("The letters are not in alphabetical order.");
}
}
}
出力結果
The letters are in alphabetical order.
コードの解説
まず、Demo というクラスの中に alphabetical_order という静的メソッドを定義しています。このメソッドは、引数として受け取った文字列の長さを取得し、2文字目以降の各文字を直前の文字と比較します。もし現在の文字が前の文字より小さい(つまり順序が崩れている)場合は false を返し、最後まで順序が崩れなければ true を返します。
main メソッドでは、判定対象の文字列 "abcmnqxz" を定義し、alphabetical_order メソッドを呼び出して判定を行っています。判定結果に応じて、コンソールに「アルファベット順である」または「アルファベット順でない」というメッセージが出力されます。
注意点
この判定では、文字同士の比較に Unicode の文字コード(コードポイント)が使用されます。そのため、大文字と小文字が混在する文字列では、意図した結果にならない場合があります。必要に応じて toLowerCase() メソッドなどで文字列を正規化してから判定すると、より確実に動作します。
-
Javaで文字(Character)のリストを文字列に変換する方法
Javaでは、Stream APIとCollectors.joining()を組み合わせることで、文字(Character)のリストを簡単に1つの文字列へ変換できます。この記事では、その基本的な手順とサンプルコードをわかりやすく解説します。 変換の手順 まず、次のような文字のリストがあったとします。 List<Character> list = Arrays.asList(W, e, l, c, o, m, e); このリストを文字列に変換するには、以下のようにstream()、map()、Collectors.joining()を使用します。 String string = li
-
【Python】文字列がすべてユニークな文字で構成されているか判定する方法
本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS