public static boolean check(int k){

創(chuàng)新互聯(lián)公司專注于灣里企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。灣里網(wǎng)站建設(shè)公司,為灣里等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
String str = ""+k;
int strLen = str.length();
int point = strLen;
int oldLen = 0,newLen = 0;
char first = 'a',end = 'a';
oldLen = (strLen+1)/2;
if (str == "")
{
System.out.println("數(shù)值為空");
return false;
}
if(str.length() !=4){
System.out.println("不是四位數(shù)");
return false;
}
for (int i=0;ioldLen;i++)
{
first = str.charAt(i);
end = str.charAt(point-1);
point--;
if (first == end)
{
newLen++;
}
}
if (oldLen == newLen)
{
return true;
}else {
return false;
}
}
public static void main(String[] args) {
for(int k = 1000;k9999;k++){
boolean is = check(k);
if (is)
{
System.out.println(k+"是回文數(shù)");
}else {
// System.out.println(k+"不是回文數(shù)");
}
}
}
1001是回文數(shù)
1111是回文數(shù)
1221是回文數(shù)
1331是回文數(shù)
1441是回文數(shù)
1551是回文數(shù)
1661是回文數(shù)
1771是回文數(shù)
1881是回文數(shù)
1991是回文數(shù)
2002是回文數(shù)
2112是回文數(shù)
2222是回文數(shù)
2332是回文數(shù)
2442是回文數(shù)
2552是回文數(shù)
2662是回文數(shù)
2772是回文數(shù)
2882是回文數(shù)
2992是回文數(shù)
3003是回文數(shù)
3113是回文數(shù)
3223是回文數(shù)
3333是回文數(shù)
3443是回文數(shù)
3553是回文數(shù)
3663是回文數(shù)
3773是回文數(shù)
3883是回文數(shù)
3993是回文數(shù)
4004是回文數(shù)
4114是回文數(shù)
4224是回文數(shù)
4334是回文數(shù)
4444是回文數(shù)
4554是回文數(shù)
4664是回文數(shù)
4774是回文數(shù)
4884是回文數(shù)
4994是回文數(shù)
5005是回文數(shù)
5115是回文數(shù)
5225是回文數(shù)
5335是回文數(shù)
5445是回文數(shù)
5555是回文數(shù)
5665是回文數(shù)
5775是回文數(shù)
5885是回文數(shù)
5995是回文數(shù)
6006是回文數(shù)
6116是回文數(shù)
6226是回文數(shù)
6336是回文數(shù)
6446是回文數(shù)
6556是回文數(shù)
6666是回文數(shù)
6776是回文數(shù)
6886是回文數(shù)
6996是回文數(shù)
7007是回文數(shù)
7117是回文數(shù)
7227是回文數(shù)
7337是回文數(shù)
7447是回文數(shù)
7557是回文數(shù)
7667是回文數(shù)
7777是回文數(shù)
7887是回文數(shù)
7997是回文數(shù)
8008是回文數(shù)
8118是回文數(shù)
8228是回文數(shù)
8338是回文數(shù)
8448是回文數(shù)
8558是回文數(shù)
8668是回文數(shù)
8778是回文數(shù)
8888是回文數(shù)
8998是回文數(shù)
9009是回文數(shù)
9119是回文數(shù)
9229是回文數(shù)
9339是回文數(shù)
9449是回文數(shù)
9559是回文數(shù)
9669是回文數(shù)
9779是回文數(shù)
9889是回文數(shù)
哪不懂在問我吧
import?java.util.Scanner;
public?class?A?{
public?static?void?main(String[]?args)?{
Scanner?scanner?=?new?Scanner(System.in);
System.out.println("請輸入一個字符串:");
String?str?=?scanner.next();
boolean?isloop?=?isLoop(str);
if?(isloop)?{
System.out.println(str?+?"是回文字符");
}?else?{
System.out.println(str?+?"不是回文字符");
}
}
public?static?boolean?isLoop(String?str)?{
for?(int?i?=?0,?j?=?str.length()?-?1;?i??str.length()?/?2;?i++,?j--)?{
if?(str.charAt(i)?!=?str.charAt(j))?{
return?false;
}
}
return?true;
}
}
對于回文這個問題,我們一般的解決方法是用遞歸
package com.axjy.yzn;
public class Recursive {
public static void main(String[] args) {
System.out.println("Is abcba a Palindrome?"+isPalindrome("abcdcba"));
}
public static boolean isPalindrome(String s){
if(s.length()=1){
return true;
}else if(s.charAt(0) != s.charAt(s.length()-1)){
return false;
}
return isPalindrome(s.substring(1,s.length()-1));
}
}
這段代碼是判斷輸入的字符串是不是回文。
所謂回文,是指諸如:abcba這樣的字符串,也就是說第一個字母也最后一個字母相同,第二個字母與倒數(shù)第二個字母相同,以些類推。
這段代碼的關(guān)鍵是下面這幾句:
while (j = (i / 2) -1 word.charAt(j) == word.charAt(i - j - 1))
j++;
這個就是從字符串的第一個字母開始逐一判斷是否滿足回文的要求,如果所有的都滿足,那么,這個循環(huán)結(jié)束時,j = (i/2),這樣就可以用下面的條件語句來判斷是否為回文了。
下面是這段代碼的注釋,希望能幫到你~!
import java.util.Scanner;
public class PalindromeV1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//接受從控制臺的輸入
System.out.println("輸入一個字符串: ");
String word = sc.next();//將用戶輸入的字符串保存到word中
int i = word.length();//獲取輸入的字符串的長度,保存到i中
int j = 0;//初始化變量j
//從字符串的第一個字母開始逐一判斷是否滿足回文的要求,如果所有的都滿足,那么,這個循環(huán)結(jié)束時,j = (i/2)
while (j = (i / 2) - 1 word.charAt(j) == word.charAt(i - j - 1))
j++;
//判斷是否為回文
if (j == i / 2)
System.out.println("輸入字符串是回文.");
else
System.out.println("輸入字符串不是回文.");
}
}
這個問題,你可以逆向思考
現(xiàn)在出現(xiàn)的現(xiàn)象是無論輸入什么,最終都會是回文,那也就是說,當(dāng)執(zhí)行
if(str1.equals(str2)){
System.out.println("是回文");}
else{
System.out.println("不是回文");}
一定都是執(zhí)行的第一個打印語句
也就是說str1.equals(str2)一定返回true
也就是說這equals兩個比較對象一定是相等,換句話說這個兩個對象其實指的是一個對象,只是不同的引用名而已
也就是說str1和str2都是指的一個StringBuffer對象
也就是說reverse()方法是直接返回了本對象
查看源碼證實:
/**
*?@since???JDK1.0.2
*/
@Override
public?synchronized?StringBuffer?reverse()?{
toStringCache?=?null;
super.reverse();
return?this;
}
可以看到最終返回this,也就是返回的是本對象,也就證實了剛的想法
所以綜上所訴,現(xiàn)在再來看一下整個代碼的執(zhí)行過程
創(chuàng)建了一個StringBuffer對象str1,里面包裝的字符串是"上海自來水
"
打印對象str1,所以此時打印的是:上海自來水
給對象str1調(diào)用reverse()方法,此時并沒有新創(chuàng)建一個StringBuffer,而是直接修改了str1里面的包裝字符串,改為"水來自海上",并返回了str1對象給str2
所以str1和str2其實都指的是一個StringBuffer(里面包含的都是"水來自海上")
此時打印str2,當(dāng)然顯示的是"水來自海上",其實若這是你再打印哈str1就明白了,因為這個是str1也打印出來的是"水來自海上"
個人建議寫法
因為你只是需要做一個回文的功能,因此可以只是把StringBuffer的reverse方法作為一個工具即可,所以建議如下寫法
String?str1?=?"上海自來水";
System.out.println("原來的話為:"+str1);
String?str2=new?StringBuffer(str1).reverse().toString();
System.out.println("正話反說為:"+str2);
if(str1.equals(str2)){
System.out.println("是回文");}
else{
System.out.println("不是回文");}
看你的要求真麻煩
給你一個簡單的不行聯(lián)系我
import java.util.Scanner;
public class test{
public static void main(String []dafd){
int num=(new Scanner(System.in)).nextInt();
String s=num.toString();
boolean b=true;
for(int i=0;is.length/2;i++){
if(s.charAt(i)!=s.charAt(s.length-i-1)){
b=false;
break;
}
}
System.out.pirntln(num+(b?"是":"不是")+"回文數(shù)");
}
}
文章題目:java判斷回文字符代碼,判斷是否為回文字符串java
當(dāng)前地址:http://chinadenli.net/article24/hsheje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、電子商務(wù)、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作、外貿(mào)建站、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)