私はプログラミングクラスの課題に取り組んでいますが、私はいくつかの難しさに遭遇しました。基本的に質問は、私たちは回文をチェックするプログラムを書くことを尋ねます。ループとスタック、palindromeの宿題の割り当て
- ユーザが文字列を文字は、このように、スタックのうち一度に一つを引かれる
- スタックに一度に一つの文字を押され
- テキスト(NO非alphanumberic文字ができません。)に入ります文字列
- を逆に元が逆と同じであれば、私たちは回文
を持っている私はしかし私のループを有するいくつかの問題を抱えているとそれから知らない、誰もが持っていません任意のアドバイスまたはポインタ?私は間違って何をしていますか?
これまで私がこれまで持っていたことは次のとおりです。
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);
}
}
私は心に留めておきます、あなたの返事に感謝します。それは多くの助けになりました! – Eogcloud
+1: 'StringBuffer'アドバイス。 1つのこと:StringBufferは同期されています。 Java 5以降には 'StringBuilder'があります。これは同じですが、同期化されていないので、ローカル変数(ほとんどの場合)としてメソッド内で使用するような、1つのスレッドのニーズには優れています。 – helios