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编辑了答案,从字符串中删除所有标点、间距和大小写敏感度。