プログラミング クラスの課題に取り組んでいますが、問題が発生したため、他にどこを見ればよいかわかりません。基本的に、質問は回文をチェックするプログラムを書くことを求めています。
- ユーザーがテキストを入力します (英数字以外の文字は使用できません)。
- String は一度に 1 文字ずつスタックにプッシュされます
- 文字は一度に 1 つずつスタックから引き出され、文字列が逆になります。
- 元が逆と同じ場合、回文があります
ループに問題がありますが、ここからどこに行けばよいかわかりません。誰かアドバイスや指針はありますか? 私は何を間違っていますか?
これが私がこれまでに持っているものです。
import java.util.Stack;
import java.util.regex.*;
import javax.swing.*;
public class Question1 {
static Stack PDrome = new Stack();
public static String Reverse (String input) {
String reverse;
if (input.length() <= 1) {
return input;
}
//pushing onto the stack
for (int i=0; i<input.length();i++) {
PDrome.push(input.charAt(i));
}
//popping from the stack into the string
for (int i=0; i<input.length(); i++) {
PDrome.pop()=reverse.charAt(i);
}
return reverse;
}
//Illegal char check method
public static boolean checker (String input) {
Pattern p = Pattern.compile("[^a-z0-9]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(input);
boolean b = m.find();
if (b) {
System.out.println("There is a special character in your string");
System.exit(0);
}
return b;
}
//Main
public static void main (String [] args) {
//input
String input = JOptionPane.showInputDialog("Enter text to check if it's a palndrome");
//error case
if (input==null); {
System.out.println("Nothing Entered");
System.exit(0);
}
//checking for illegal chars
checker(input);
}
}