题目:回文数
(来源LeetCode)
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
题解:
法一:
class Solution {
public boolean isPalindrome(int x) {
String str = String.valueOf(x);
String str2 = "";
for(int i = 0; i < str.length(); i++){
str2 = str.charAt(i) + str2; //倒置的关键
}
if(str.equals(str2)){
return true;
}
return false;
}
}
使用charAt()方法取出一个一个的字符,并将字符倒置组成新的字符
查看API:
charAt(int index)
Returns the char value at the specified index.
.
.
法二:
String str = String.valueOf(x);
StringBuffer str2 = new StringBuffer(str).reverse();
if(str.equals(str2)){
return true;
}
return false;
使用了StringBuffer的reverse()方法,因为String中没有此方法,故先使用StringBuffer的构造器传入String的形参转化成StringBuffer型,再进行reverse操作。
查看API:
reverse()
Causes this character sequence to be replaced by the reverse of the sequence.
StringBuffer(String str)
Constructs a string buffer initialized to the contents of the specified string.
.
.
法三:
class Solution {
public boolean isPalindrome(int x) {
String str = String.valueOf(x);
char temp;
char[] chars = str.toCharArray();
for(int i = 0; i < (chars.length/2); i++){
temp = chars[i];
chars[i] = chars[chars.length-1-i];
chars[chars.length-1-i] = temp;
}
String str2 = new String(chars);
if(str2.equals(str)){
return true;
}
return false;
}
}
使用了Stirng的toCharArray()方法,将字符串转换成字符数组操作,再将数组倒置与原str比较
查看API:
toCharArray()
Converts this string to a new character array.