파일을 읽고 텍스트가 회문인지 아닌지 확인하는 프로그램을 만들려고합니다. 코드가 컴파일되지만 실제로 작동하지 않습니다.java 다음에 문자열을 지정하거나 문자로 나누기 위해
문제는 완전한 토큰을 문자로 나누거나 문자를 문자열에 할당하여 push
(대기열에 넣기)의 각 문자 나 숫자를 stack
(대기열)에 넣는 방법을 모른다는 것입니다. 누구든지이 문제에 대한 해결책을 제시 할 수 있습니까? 대신
char temp = s.next().charAt(i);
의
public static void main(String [] args) throws IOException{
StackReferenceBased stack = new StackReferenceBased();
QueueReferenceBased queue = new QueueReferenceBased();
Scanner s = null;
String fileName=args[0]+".txt";
int symbols = 0;
int lettersAndDigits =0;
int matches = 0;
try{
s = new Scanner(new File(fileName));
while(s.hasNext()){
String current = s.next();
for(int i=0;i<current.length();i++){
char temp = s.next().charAt(i);
if(Character.isLetterOrDigit(temp)){
stack.push(temp);
queue.enqueue(temp);
lettersAndDigits++;
}
else {
symbols++;
}
}
}
System.out.println("There are: " + " "+ symbols + " " +"symbols and " + " "+lettersAndDigits + " "+ "digits/letters");
}
catch (FileNotFoundException e) {
System.out.println("Could not open the file:" + args[0]);
} //catch (Exception e) {
//System.out.println("ERROR copying file");
finally {
if(s != null){
s.close();
}
}
while (!stack.isEmpty()){
if(!stack.pop().equals(queue.dequeue())){
System.out.println("not pali");
break;
}
else {
++matches;
}
}
if(matches==lettersAndDigits){
System.out.print("pali");
}
}
숙제입니까? 그렇지 않으면 문자열이 회문인지 여부를 확인하기에는 너무 많은 작업을 수행하고 있습니다. –
예, 그 과제 : – Rennos