回文是一个词,短语,数字或其他单位序列,可以读取相同的方式在任何方向。 为了检查一个单词是否是回文,我得到了这个单词的char数组并比较了这些字符。我试过了,看起来很管用。但是我想知道这是对的还是有什么需要改进的地方。
这是我的代码:
public class Aufg1 {
public static void main(String[] args) {
String wort = "reliefpfpfeiller";
char[] warray = wort.toCharArray();
System.out.println(istPalindrom(warray));
}
public static boolean istPalindrom(char[] wort){
boolean palindrom = false;
if(wort.length%2 == 0){
for(int i = 0; i < wort.length/2-1; i++){
if(wort[i] != wort[wort.length-i-1]){
return false;
}else{
palindrom = true;
}
}
}else{
for(int i = 0; i < (wort.length-1)/2-1; i++){
if(wort[i] != wort[wort.length-i-1]){
return false;
}else{
palindrom = true;
}
}
}
return palindrom;
}
}
为什么不只是:
public static boolean istPalindrom(char[] word){
int i1 = 0;
int i2 = word.length - 1;
while (i2 > i1) {
if (word[i1] != word[i2]) {
return false;
}
++i1;
--i2;
}
return true;
}
例:
输入为“ andna”。
i1将为0,i2将为4。
第一次循环迭代,我们将比较word[0]
和word[4]
。它们相等,因此我们将i1递增(现在为1),然后将i2递减(现在为3)。
因此,我们然后比较n。它们相等,因此我们将i1递增(现在为2),将i2递减(现在为2)。
现在i1和i2相等(它们都为2),因此while循环的条件不再成立,因此该循环终止并返回true。
本文向大家介绍Java程序检查字符串为回文,包括了Java程序检查字符串为回文的使用技巧和注意事项,需要的朋友参考一下 如果即使反向将每个字符的位置都保持不变,则字符串为回文字符串。例如,``MADAM''是回文字符串,因为即使反向将字符串``MADAM''也使每个字符的位置保持不变。作为回文与否,我们可以使用库方法,也可以不使用库方法。 但是,如果我们要检查“女士”是否是回文,则由于首字母大写,
问题内容: 我想检查一个字符串是否是回文。我想学习一种使用最少的字符串操作来检查相同内容的简单方法 问题答案: 您可以尝试这样的事情:
问题内容: 我有以下内容: 我的代码有什么问题?我想检查一下这个词是否是回文。 问题答案: 也许我会建议替代解决方案: UPD。但是请记住,这几乎是“作弊”方法,是对语言功能的智能用法的演示,但不是最实用的算法(时间O(n),空间O(n))。对于现实生活中的应用程序或编码面试,您绝对应该使用循环解决方案。JasonSebring在此线程中发布的一个既简单又有效(时间O(n),空间O(1))。
问题内容: 我想编写一个Java方法,如果字符串是回文,则返回true。 这是我到目前为止的内容: 我的问题是,它不考虑像这样的单词:回文。 在不区分大小写并忽略标点符号的情况下,测试这是否是回文式的最佳方法是什么。 问题答案: 使用此正则表达式删除所有标点和空格并将其转换为小写
我应该编写一个程序,它接受表示整数字符串作为输入,如果每个字符都是数字0-9,则输出是。 我已经回到我的章节阅读和谷歌,但仍然有问题。我知道我的代码一团糟,但我迷路了。我可能会有一些正确的或错误的东西,但这就是我所拥有的。 我哪里错了??
问题内容: 我需要检查一个字符串是否包含汉字。搜索之后,我发现我必须在这种模式下查看正则表达式,但是我无法使正则表达式正常工作。 任何人都经历过这种情况?正则表达式正确吗? 问题答案: 作为讨论在这里,在Java 7(即正则表达式编译器符合要求RL1.2属性从UTS#18 Unicode的正则表达式 ),你可以使用下面的正则表达式匹配中国(当然,CJK)字符: 可以简单地理解为