java笔试,面试小程序

1.输入一个字符串,倒序输出

package com.jn.test;

import java.util.Scanner;
/**
 * 输入一个字符串,倒序输出
 */
public class ReverseOutput{
            public static void main(String[] args){
                Scanner scanner=new Scanner(System.in);
                System.out.println("请输入一个字符串:");
                String s=scanner.nextLine();
                for(int i=s.length()-1;i>=0;i--){
                System.out.print(s.charAt(i));
            }
            }
}

java.lang.String.charAt() 方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,依此类推,

2.打印10000以内的自守数(自守数是指某个数的平方的末尾几位数等于这个数的数。)

第一种:

package com.jn.test;
/**
 * 输出20万以内的自守数:
 * 例如:25*25=625
 */
public class ReverseOutput2 {
        public static void main(String[] args){
        for (int  i= 1;  i< 2000000; i++) {
                int num=i*i;
                String ii=i+"";
                String numm=num+"";
                if(numm.endsWith(ii)){
                        System.out.println(ii);
                }
        }
        }
}
java.lang.String.endsWith() 方法返回的测试该字符串是否以指定后缀sffix结束,该方法返回一个boolean类型

第二种:

package com.jn.test;
/**
 * 自守数
 */
public class AutomorphicTree {
        public static void main(String[] args) {
                for(int i = 1; i < 10000; i++){
                        String strI = String.valueOf(i);//把int型转化成字符串
                        String multiStr = String.valueOf(i*i);
                        /*
                         * 截取掉multiStr从首字母起长度为beginIndex的字符串,将剩余字符串赋值给last;
                         */
                        String last = multiStr.substring(multiStr.length() - strI.length());
                        if(last.equals(strI)){
                                System.out.println(i);
                        }
                }
        }
}
(1) 由 基本数据型态转换成 String

String 类别中已经提供了将基本数据型态转换成 String 的 static 方法

也就是 String.valueOf() 这个参数多载的方法

有下列几种

String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串

String.valueOf(char c) : 将 char 变量 c 转换成字符串

String.valueOf(char[] data) : 将 char 数组 data 转换成字符串

String.valueOf(char[] data, int offset, int count) :

将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串

String.valueOf(double d) : 将 double 变量 d 转换成字符串

String.valueOf(float f) : 将 float 变量 f 转换成字符串

String.valueOf(int i) : 将 int 变量 i 转换成字符串

String.valueOf(long l) : 将 long 变量 l 转换成字符串

String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()

用法如:

int i = 10;

String str = String.valueOf(i);

这时候 str 就会是 "10"

(2) 由 String 转换成 数字的基本数据型态

要将 String 转换成基本数据型态转

大多需要使用基本数据型态的包装类别

比如说 String 转换成 byte

可以使用 Byte.parseByte(String s)

这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException

byte :

Byte.parseByte(String s) : 将 s 转换成 byte

Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte

比如说 Byte.parseByte("11", 16) 会得到 17

double :

Double.parseDouble(String s) : 将 s 转换成 double

float :

Double.parseFloat(String s) : 将 s 转换成 float

int :

Integer.parseInt(String s) : 将 s 转换成 int

long :

Long.parseLong(String

3.输入一个正整数,输出其质数(素数)的乘积表达式:

请输入一个整数:

232

232=2*2*2*29

第一种:

package com.jn.test;

import java.util.Scanner;

public class PrimeNum{
         public static void main(String[] args){
                 Scanner sc=new Scanner(System.in);
                 System.out.println("请输入一个整数:");
                 int num=sc.nextInt();
                 System.out.print(num+"=");
                 int i=2;
                 while(i<=num){
                         if(i==num){
                                 System.out.print(i);
                                 break;
                         }
                         if(num%i==0){
                                 System.out.print(i+"*");
                                 num=num/i;
                         }
                         else {
                                i++;
                        }
                 }
         }
}
第二种:
package com.jn.test;

import java.util.Scanner;

public class PrimeNum2 {
            public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                System.out.print( "请键入一个正整数:     "); 
                int    n    = s.nextInt();
                int k=2; 
                System.out.print(n + "=" );
                while(k <= n) {
                  if(k == n) {
                          System.out.println(n);
                          break;
                          }
                    else if( n % k == 0){
                        System.out.print(k + "*");
                        n = n / k; 
                        } 
                            else    k++;
                    }
             }
}