
正文
java回文数基础代码 java回文是什么意思
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用java求回文数,大神帮我改一下程序
你在调用 s1.reverse(); 的时候,同时把 s1 自己也给反转了,然后这个方法返回 s1 的引用。所以 s1 和 s2 实际上指向的是同一个 StringBuffer 对象,内部的字符串自然也是一样的。
这样改:
public static void main(String[] args)
{
System.out.println("请输入一串数字:");
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
StringBuilder s1=new StringBuilder(s);
s1.reverse();
if(s1.toString().equals(s))
System.out.println("是回文数 ");
else
System.out.println("不 是回文数 ");
}
而且推荐单线程下使用 StringBuilder,它的方法因为没有加同步锁,所以效率比 StringBuffer 要高。
相关问答
Q1: java编写回文数
按照你的要求编写的,输出从0到max中用二进制表示和十进制表示都是回文数的Java程序如下:
import java.util.Scanner;
public class CCF {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个整数:");
int max=sc.nextInt();
for(int i=0;i=max;i++){
String num = String.valueOf(i);
String num2=Integer.toBinaryString(i);
String reversenum=new StringBuffer(num).reverse().toString();
String reversenum2=new StringBuffer(num2).reverse().toString();
if(reversenum.equals(num) reversenum2.equals(num2)){
System.out.println(i+"用二进制表示"+num2+"和十进制表示"+i+"都是回文数");
}
}
}
}
运行结果:
请输入一个整数:1000
0用二进制表示0和十进制表示0都是回文数
1用二进制表示1和十进制表示1都是回文数
3用二进制表示11和十进制表示3都是回文数
5用二进制表示101和十进制表示5都是回文数
7用二进制表示111和十进制表示7都是回文数
9用二进制表示1001和十进制表示9都是回文数
33用二进制表示100001和十进制表示33都是回文数
99用二进制表示1100011和十进制表示99都是回文数
313用二进制表示100111001和十进制表示313都是回文数
585用二进制表示1001001001和十进制表示585都是回文数
717用二进制表示1011001101和十进制表示717都是回文数
Q2: java编程1000-3000回文数
public class SimNum {
public SimNum() {
}
public static void main(String[] args) {
int sum = 0;
for(int i = 1000; i = 3000; i ++) {
if(SimNum.valid(i)){
sum ++;
System.out.println(i);
}
}
System.out.println("一共有" + sum + "个回文数");
}
public static boolean valid(int num) {
StringBuffer snum = new StringBuffer(num + "");
return snum.toString().equals(snum.reverse().toString());
}
}
Q3: java回文数 代码修改
package JOptionPane;
import javax.swing.JOptionPane;
/**
* @author songml
*
*/
public class huiwen1 {
/**
* @param args
*/
public static void main(String[] args) {
//bFlg为true的时候,显示对话框
//bFlg为false的时候,不显示对话框,程序结束
boolean bFlg = true;
while (bFlg) {
String inputValue = JOptionPane.showInputDialog("请输入一个五位整数");
//什么都没有输入的时候的处理
if ("".equals(inputValue) ){inputValue ="0";}
//点击"取消"时候的处理
if (null == inputValue ) {bFlg = false;continue;}
//五位数判断
if (inputValue.length() !=5) {
JOptionPane.showMessageDialog(null, "请输入一个五位数");
//跳出本次(上面的那个)while,目的是不运行下面的回文数判断
continue;
}
long inputValueLong = Long.parseLong(inputValue);
long temp = inputValueLong;
long reverseLong = 0L;
//回文数判断
while (inputValueLong != 0) {
reverseLong = reverseLong * 10 + inputValueLong % 10;
inputValueLong = inputValueLong / 10;
}
if (reverseLong == temp) {
JOptionPane.showMessageDialog(null, "你输入的是回文数");
bFlg =false;
} else {
JOptionPane.showMessageDialog(null, "你输入的不是回文数");
}
}
System.exit(0);
}
}
Q4: 求用java判断一个4位回文数代码
public static boolean check(int k){
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("数值为空");
return false;
}
if(str.length() !=4){
System.out.println("不是四位数");
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+"是回文数");
}else {
// System.out.println(k+"不是回文数");
}
}
}
1001是回文数
1111是回文数
1221是回文数
1331是回文数
1441是回文数
1551是回文数
1661是回文数
1771是回文数
1881是回文数
1991是回文数
2002是回文数
2112是回文数
2222是回文数
2332是回文数
2442是回文数
2552是回文数
2662是回文数
2772是回文数
2882是回文数
2992是回文数
3003是回文数
3113是回文数
3223是回文数
3333是回文数
3443是回文数
3553是回文数
3663是回文数
3773是回文数
3883是回文数
3993是回文数
4004是回文数
4114是回文数
4224是回文数
4334是回文数
4444是回文数
4554是回文数
4664是回文数
4774是回文数
4884是回文数
4994是回文数
5005是回文数
5115是回文数
5225是回文数
5335是回文数
5445是回文数
5555是回文数
5665是回文数
5775是回文数
5885是回文数
5995是回文数
6006是回文数
6116是回文数
6226是回文数
6336是回文数
6446是回文数
6556是回文数
6666是回文数
6776是回文数
6886是回文数
6996是回文数
7007是回文数
7117是回文数
7227是回文数
7337是回文数
7447是回文数
7557是回文数
7667是回文数
7777是回文数
7887是回文数
7997是回文数
8008是回文数
8118是回文数
8228是回文数
8338是回文数
8448是回文数
8558是回文数
8668是回文数
8778是回文数
8888是回文数
8998是回文数
9009是回文数
9119是回文数
9229是回文数
9339是回文数
9449是回文数
9559是回文数
9669是回文数
9779是回文数
9889是回文数
哪不懂在问我吧
Q5: 回文数个数,Java编程
import java.util.Scanner;
public class PalindromicNumber {
public static void main(String[] args) {
System.out.println("一个正整数n(0 n = 100000 )");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
for(int i=1;i=n;i++){
if(isPalindromicNumber(i)){
count++;
}
}
sc.close();
System.out.println("1~"+n+"之间总共"+count+"个回文数");
}
private static boolean isPalindromicNumber(int n){
String num = String.valueOf(n);
if(num.length()!=1){
char[] temp = num.toCharArray();
for(int i=0;itemp.length/2;i++){
if(temp[i]!=temp[temp.length-1-i]){
return false;
}
}
}
//System.out.println(n+"是回文数");
return true;
}
}
关于java回文数基础代码和java回文是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






