关于IO流和String常见的一些面试题

关于IO流和String常见的一些面试题

1.生成一个随机100内的小数,转化为保留两位小数的字符串,不考虑四舍五入的问题

2.获取当前日期,并把这个日期转化为指定格式的字符串,如:2088-08-08
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *  Math.random() 方法用于返回一个随机数; 随机数范围为 0.0 =< Math.random < 1.0
 *  java.lang.Object
 *    --java.text.Format
 *     ---java.text.NumberFormat
 *       ---java.text.DecimalFormat (DecimalFormat类继承于text.NumberFormat-->text.Format -->lang.Object)
 * 构造方法: DecimalFormat​(String pattern) 使用给定模式和默认 FORMAT语言环境的符号创建DecimalFormat。
 * */
public class Example01 {
    public static void main(String[] args) {
        double d = Math.random()*100;//1.生成一个100以内的随机数
//        System.out.println(d);
        DecimalFormat df = new DecimalFormat("0.00");//给定保留两位小数的形式
        String str = df.format(d);
        System.out.println(str);
  //2. java.util.Date  -->new一个日期类对象 --->格式转换器-->自定义转换格式SimpleDateFormat
    Date date=new Date();
//    System.out.println(date);
    SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println(simple2.format(date));


    }

}
  1. 要求对"34 9 -1 78 3 22"字符串中的数值进行从小到大的排序,变成一个数值有序的字符串:-1 3 9 22 34 78
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.List;
public class ListSort {
    public static void main(String[] args) {
        //34 9 -1 78 3 22  -->要排序必须是类实现了Comparable接口
        String str = "34 9 -1 78 3 22" ;
        sort(str);
    }
    private static void sort(String str) {
        String  [] a = str.split(" ") ;//使用字符串的分割方法,按照空格分割
        //System.out.println(Arrays.toString(a));
        int [] b  = new int [a.length] ;
        //遍历
        for (int i = 0; i <a.length ; i++) {
           Integer in=Integer.valueOf(a[i]);//此处定义一个Integer包装类,并调用valueOf()把遍历出来的数字传给Integer包装类
           b[i]=in;
        }
        //Arrays.sort(int [])方法--->static void sort​(int[] a) 将指定的数组按升序排序
       Arrays.sort(b);//排序
     //再将排好序的int数组,转换为字符串
        String[] str1=new String [b.length];
        for (int i = 0; i < b.length; i++) {
            str1[i]=b[i]+"";
            System.out.print(str1[i]+" ");
        }

    }

}

4.将一个随机字符串中的所有字符升序排列,并倒序打印 字符串为"dfhwd1287sdfj"


/**
 * Class String
 *   --java.lang.Object
 *      --java.lang.String
 * 实现的所有接口
 *    Serializable , CharSequence, Comparable<String>
 *
 * */
public class ReverseSort_String {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要输入的字符串:");
        String str=sc.next();
        sort(str);

    }
 public static  void sort(String s){
     //char[] toCharArray()   将此字符串转换为新的字符数组。
        char[] ch= s.toCharArray();
       Arrays.sort(ch);//static void sort​(char[] a) 将指定的数组按升序排序。
     System.out.println("升序排序:");
     for(char chs : ch) {
         System.out.print(chs+" ");
     }
     System.out.println();
     System.out.println("输入字符串的倒序排列为:");
     for (int i = ch.length - 1; i >= 0; i--) {
         System.out.print(ch[i] + " ");
     }

 }


}

5.编写敏感词过滤程序
说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。
如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。


public class SensitiveWord_StringDemo {
    public static void main(String[] args) {

        String [] sensibilityWord=new String  []{"性", "色情", "爆炸", "恐怖", "枪", "军火"};
        String str="美丽国的恐怖,爆炸、强奸、枪支军火和色情泛滥,黑人的命很卑微!";
        for (int i= 0; i < sensibilityWord.length; i++) {
            str = str.replace(sensibilityWord[i], "#");

        }
        System.out.println(str);

        //String substring​(int beginIndex) 返回一个字符串,该字符串是此字符串的子字符串。
        String str1="ABCDE";

        System.out.println(str1.substring(3));

        System.out.println(str1.concat("XYZ"));;

        System.out.print(str1);



    }

}

六、选择题

	1.下列String类的(B)方法返回指定字符串的一部分(选择一项)

		A.extractstring()

		B.substring()

		C.Substring()

		D.Middlestring()

	2.对于下列代码:

		String str1="java";

		String str2="java";

		String str3=new String("java");

		StringBuffer str4=new StringBuffer("java");

	3. 以下表达式的值为true的是(A)

		A) str1= =str2; B) str1= =str4;

		C) str2= =str3; D) str3= =str4;

	4.以下程序段输出结果的是(C)

	public class Test {

		public static void main(String args[]){

		String str="ABCDE";

		str.substring(3);

		str.concat("XYZ");

		System.out.print(str);

		}

	}

		A) DE B) DEXYZ  C) ABCDE  D) CDEXYZ
	
	5.以下代码的运行结果是哪一项。(B )

	public class TestStringContructor{

		public static void main(String[] args){

			byte [] b = {49,50,51,52,53};

			String myString = new String(b);

			System.out.println(myString);

		}

	}

		A)45555 B)12345

		C)90123 D)4950515253
	
七.简答题
	1.在 JAVA 中如何跳出当前的多重嵌套循环?
        答:使用带有标号的的break语句
	2.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
      答:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。
	3.用最有效率的方法算出2乘以8等於几?
     答: int i = 2;  int j = i << 3;
	4.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
      答:Math.round(11.5)=12,Math.round(-11.5)=-11
	5.是否可以从一个static方法内部发出对非static方法的调用?
      答:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时候不需要创建对象,可以直接调用。也就是说,当一个static方法被调用的时候,可能还没有创建任何的实例对象,如果从一个static的方法中发出来对非static方法的调用,那个非static方法是关联到那个逻辑上的呢,这个逻辑无法成立,所以,一个static的方法的内部发出对static方法的调用。
	6.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
     答:引用变量不能变,对象的内容可以改变
         
	7.请说出作用域public,private,protected,以及不写时的区别?
       答:public是公共的权限,也就是在同类下、同包下、不同包下都可以访问。
       Private私有的只能在当前类下访问;protected修饰的成员变量和函数能被类本身、子类及同一个包中的类访问。没有写就是default,它是针对本包设计的,它所修饰的在本包下的其他类都访问。
	8.Integer与int的区别
      答:Integer是引用数据类型,是包装类,int是基本数据类型。
	9.String是最基本的数据类型吗?
       答:String是引用数据类型
	10.是否可以继承String类?
       答:不可以,因为String类被final修饰了,

public final class String
implements java.io.Serializable, Comparable, CharSequence

	11.下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
      答:7个
	12.说出一些常用的类,包,接口,请各举5个
       答:常用的类有:String、Integer、java.util.Date,BufferedReader、

BufferedWriter、FileReader、FileWirter;常用的接口有List、Serializable , CharSequence, Comparable,常用的包java.lang包、util包、java.io、java.sql
13.能不能自己写个类,也叫java.lang.String?
答:不能
14.构造器Constructor是否可被override?
答:Constructor不能被继承,所以Constructor也就不能被override。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值