私はJavaのスキルにかなり慣れていませんが、ユーザーに文字列を入力するように促し、文字の最大長が増加する順序付けられたサブシーケンスを表示するプログラムを作成しようとしていました。たとえば、ユーザーがWelcome
プログラムを入力した場合、出力はWelo
. ユーザーが を入力しWWWWelllcommmeee
ても、プログラムは引き続き を出力しますWelo
。私はこれだけのことを成し遂げましたが、本来あるべきことをしていません。正直なところ、その理由について途方に暮れています。
import java.util.ArrayList;
import java.util.Scanner;
public class Stuff {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter a string. ");
String userString = input.next();
ArrayList charList = new ArrayList();
ArrayList finalList = new ArrayList();
int currentLength = 0;
int max = 0;
for(int i = 0; i < userString.length(); i++){
charList.add(userString.charAt(i));
for(int j = i; j < userString.length(); j++){
int k=j+1;
if(k < userString.length() && userString.charAt(k) > userString.charAt(j)){
charList.add(userString.charAt(j));
currentLength++;
}
}
}
if(max < currentLength){
max = currentLength;
finalList.addAll(charList);
}
for (int i = 0; i < finalList.size(); i++){
char item = (char) finalList.get(i);
System.out.print(item);
}
int size1 = charList.size();
int size2 = finalList.size();
System.out.println("");
System.out.println("Size 1 is: " + size1 + " Size 2 is : " + size2);
}
}
私のコードは、 入力するWelcome
と が出力されますWWeceeclcccome
。
私が間違っていることについてのヒントはありますか?