java面试题

1、输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。    例如输入“I am a student.”,则输出“student. a am I”。

   

public void printFanZhuan() {
    // String str = "I am a student.";

    String str = null;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    try {
    str = br.readLine();
    } catch (IOException e) {
    e.printStackTrace();
    }
    int index = str.lastIndexOf(' ');
    while (index >= 0) {
    System.out.print(str.substring(index + 1) + ' ');
    str = str.substring(0, index);
    index = str.lastIndexOf(' ');
    }
    System.out.print(str);



2、在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。


public void onlyOneChar() {

    String str = "abaccdeff";
    for (int i = 0; i < str.length(); i++) {
    if (str.indexOf(str.charAt(i)) == str.lastIndexOf(str.charAt(i))) {
    System.out.println(str.charAt(i));
    break;
    }
    }

    }


3、有一只兔子,四年后开始每年产一只兔子。
    a) 按此规律,多少年后兔子总数超过1000只兔子?
    b) 打印每年的兔子数量。
    c) 并把每年的兔子数量生成文件保存到c:\ rabbit.txt。


public static void tuZi() {
    File file = null;
    FileWriter fw = null;
    BufferedWriter bw = null;

    int f[] = new int[100];
    f[0] = f[1] = f[2] = f[3] = 1;
    try {
    file = new File("c:\\rabbit.txt");
    fw = new FileWriter(file);
    bw = new BufferedWriter(fw);
    if (file.exists()) {
    file.delete();
    } else {
    try {
    file.createNewFile();
    } catch (IOException e) {
    System.out.println("创建文件失败!");
    }
    }
    for (int i = 0; i < 100; i++) {
    if (i < 4) {
    bw.write("第 " + (i + 1) + " 年兔子数量为\t1");
    bw.newLine();
    } else {
    f = f[i - 1] + f[i - 4];
    bw.write("第 " + (i + 1) + " 年兔子数量为\t" + f);
    bw.newLine();
    if (f > 1000) {
    System.out.println(i + 1 + " 年后兔子总数超过1000只兔子");
    break;
    }
    }
    }

    bw.close();
    fw.close();

    } catch (IOException e1) {
    e1.printStackTrace();
    }
    }


4、实现tirm()


public String trimTest() {
    System.out.println("请输入字符串");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str = null;
    try {
    str = br.readLine();
    } catch (IOException e) {
    System.out.println("输入异常");
    }
    if (str == null || " ".equals(str)) {
    System.out.println("丫什么都没输入我给你判断什么?");
    }
    // String str=" mo jun ";
    // 起始位置
    int st = 0;
    // 从off位置到最后
    /** The off is the first index of the storage that is used. */
    int off = 0;
    // count是总字符数
    /** The count is the number of characters in the String. */
    int count = str.length();
    int len = count;
    /** The value is used for character storage. */
    char[] val = str.toCharArray();
    System.out.println(val.length + " " + str.length());
    // 算出前空白的位置
    while ((st < len) && (val[off + st] <= ' ')) {
    st++;
    }
    // 算出最后空白的位置
    while ((st < len) && (val[off + len - 1] <= ' ')) {
    len--;
    }
    return ((st > 0) || (len < count)) ? str.substring(st, len) : str;
    }


5、对14、58、25、46、38、79、65进行排序。


public void printMaoPao() {
    int[] aa = { 14, 58, 25, 46, 38, 79, 65 };
    System.out.println("我选择的是冒泡排序");
    for (int i = 0; i < aa.length; i++) {
    for (int j = 0; j < aa.length - i - 1; j++) {
    if (aa[j] > aa[j + 1]) {
    int t = aa[j + 1];
    aa[j + 1] = aa[j];
    aa[j] = t;
    }
    }
    }
    for (int i = 0; i < aa.length; i++) {
    System.out.println(aa);
    }
    }


6、求1+2+…+n;

public void sum() {
    System.out.println("请输入一个数字");
    String s = "";
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    try {
    s = br.readLine();
    int n = Integer.parseInt(s);
    System.out.println(n);
    int sum = 0;

    // while方式
    while (n > 0) {
    sum += n;
    n--;
    }

    // do..while方式
    do {
    sum += n;
    n--;
    } while (n > 0);

    // for方式
    for (int i = 0; i <= n; i++) {
    sum += i;
    }
    System.out.println(sum);
    } catch (Exception e) {
    System.out.println("丫 您输入的内容格式不正确,请输入正整数");
    sum();
    }
    }


7、Oracle中有哪几种文件?并说明各种文件的用途

数据文件(一般后缀为.dbf或者.ora),日志文件(后缀名.log),控制文件(后缀名为.ctl) 

控制文件是oracle数据库启动时使用的文件,里面存放了数据库结构的一些信息,例如:数据库的名称、实例名称、数据文件位置、表空间、日志文件等等信息;

数据文件是oracle数据库实际存放数据的地方,例如你利用insert语句插入的数据,首先是在内存中,然后oracle会根据它自己的机制,写入到数据文件中;

日志文件是oracle进行操作时记录操作使用的文件,例如删除文件时oracle自己所做的记录;

 

8、在一个字符串中找到出现最多次的字符和最少次的字符以及次数。 如输入abaaccdeff,则输出b:1,a:3。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import java.util.Map.Entry;

public class Test {
 public static void main(String[] args) throws IOException {
  // String str = "AABBCCGFFDED";
  System.out.println("请输入字符串:");
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  String str = br.readLine();
  if (null == str || "".equals(str)) {
   System.out.println("输入不能为空,程序已结束!");
   return;
  }
  Map<String, Integer> maps = new HashMap<String, Integer>();
  for (int i = 0; i < str.length(); i++) {
   String temp = str.substring(i, i + 1);
   Integer count = maps.get(temp);
   if (count == null) {
    count = 1;
   } else {
    count++;
   }
   maps.put(temp, count);
  }
  // 得出最小次数的字母
  Integer minCount = null;
  for (String key : maps.keySet()) {
   if (minCount == null || maps.get(key) < minCount) {
    minCount = maps.get(key);
   }
  }
  // 得出最大次数的字母
  Integer maxCount = null;
  for(String key:maps.keySet()){
   if(maxCount==null || maps.get(key)>maxCount){
    maxCount=maps.get(key);
   }
  }
  // 得到最小的字母
  //Character minChar = null;
  for (String key : maps.keySet()) {
   if ((int) maps.get(key) == minCount) {
    System.out.println("最小次数的字母结果是:字母" + key + " 次数先:" + minCount);
     }
  }
  // System.out.println("结果是:字母" + minChar + " 次数先:" + minCount);
  // 得到最大的字母
  //Character maxChar = null;
  for (String key : maps.keySet()) {
   if ((int) maps.get(key) == maxCount) {
    System.out.println("最大次数的字母结果是:字母" + key + " 次数先:" + maxCount);
   }
  }
 }
}


 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值