Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 回文和数组,令人沮丧的努力_Java_Arrays_For Loop_While Loop_Palindrome - Fatal编程技术网

Java 回文和数组,令人沮丧的努力

Java 回文和数组,令人沮丧的努力,java,arrays,for-loop,while-loop,palindrome,Java,Arrays,For Loop,While Loop,Palindrome,我目前正在尝试使用一系列干净和脏的数组来制作回文检查器,虽然我已经编译了它,但是我在获取代码来检测实际的回文时遇到了问题 下面是有问题的代码,任何和所有的帮助将不胜感激 import java.io.*; import java.util.Scanner; public class palindrome { public static void main (String[] args) throws IOException { File inputFile

我目前正在尝试使用一系列干净和脏的数组来制作回文检查器,虽然我已经编译了它,但是我在获取代码来检测实际的回文时遇到了问题

下面是有问题的代码,任何和所有的帮助将不胜感激

    import java.io.*;
import java.util.Scanner;
public class palindrome
{
    public static void main (String[] args) throws IOException
    {
        File inputFile = new File ("Palindromes.txt");

        Scanner inputScan = new Scanner (inputFile);

        String [] dirty = new String [20];

        int i = 0;

        while (inputScan.hasNext())
        {
            dirty[i] = inputScan.nextLine();
            System.out.println(dirty[i]);
            i++;
        }
        inputScan.close();
        String [] clean = new String [i];
        String reverse ="";
        for (int x = 0; x < clean.length; x++)
        {
            clean[x] = "";
            for (int z = length; z < dirty[x].length(); z--)
            {               
                char test = dirty[x].charAt(z);
                if (Character.isLetterOrDigit(test))
                {
                    test = Character.toLowerCase(test);
                    clean [x] += test;
                    if (clean[x].equals(clean[z]))
                    {
                        System.out.println(clean[z] +" is a palindrome");
                    } else
                    {
                        System.out.println(clean[z] +" is NOT a palindrome");
                    }
                }
            }
        }
        for (int j = 0; j < clean.length; j++)
        {
            System.out.println(clean[j]);
        }
    }
import java.io.*;
导入java.util.Scanner;
公共类回文
{
公共静态void main(字符串[]args)引发IOException
{
File inputFile=新文件(“Palindromes.txt”);
扫描仪输入扫描=新扫描仪(输入文件);
字符串[]脏=新字符串[20];
int i=0;
while(inputScan.hasNext())
{
dirty[i]=inputScan.nextLine();
System.out.println(dirty[i]);
i++;
}
inputScan.close();
String[]clean=新字符串[i];
字符串反向=”;
对于(int x=0;x
你想做这样的事情吗

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Palindrome {

    public static boolean isPalindrome(String s) {
        s = s.toLowerCase().replaceAll("[\\s\\p{Punct}]", "");
        int len = s.length(), mid = len / 2;
        for (int x = 0; x < mid; x++)
            if (s.charAt(x) != s.charAt(len - x - 1))
                return false;
        return true;
    }

    public static void main(String[] args) throws IOException {
        File inputFile = new File("Palindromes.txt");
        try (Scanner scanner = new Scanner(inputFile)) {
            while (scanner.hasNextLine()) {
                String s = scanner.nextLine();
                if (isPalindrome(s)) {
                    System.out.println(s + " is a palindrome");
                } else {
                    System.out.println(s + " is NOT a palindrome");
                }
            }
        }
    }
}
导入java.io.File;
导入java.io.IOException;
导入java.util.Scanner;
公共类回文{
公共静态布尔值isAlindrome(字符串s){
s=s.toLowerCase().replaceAll(“[\\s\\p{Punct}]”,“”);
int len=s.length(),mid=len/2;
对于(int x=0;x
编写一个测试回文属性的方法。您当前的方法似乎很奇怪。是的,这就是我要寻找的,但是我需要将文件输入分离为两个单独的数组;一个“脏”数组,它只是按原样从文件中读取代码,另一个是“干净”数组删除任何标点、间距和大小写敏感度的数组。我们有没有办法将这些数组实现到这段代码中?@MaxGrant I编辑了答案,从字符串中删除所有标点、间距和大小写敏感度。