在群里经常碰到很多找工作的朋友回来就谈论自己的面试经历,被问到或者笔试过程中碰到的一些题目,下面把前两天几个朋友提出的问题进行简单的实现下,希望各位大虾指教!代码如下所示:
package com.myclover.exam;
public class Exam {
private static final char[] SRC_NUMS = "零一二三四五六七八九".toCharArray();
/**
* 功能说明:把阿拉伯数字转换成中文的数字,即1-->一,10-->十
* @author myclover
* @param num 传入一个阿拉伯数字,正整数
* @return 返回值:返回对应的中文数字
*/
public static String convertIntToString(int num){
String sNum = String.valueOf(num);
StringBuffer numSb = new StringBuffer();
for(int i = sNum.length() - 1 , j = 0 ; i >= 0 ; i-- , j++){
char ch = sNum.charAt(i);
if(ch == '0'){
if(i < sNum.length() - 1 && sNum.charAt(i + 1) != '0'){
numSb.append(SRC_NUMS[0]);
}
}else{
if(j == 1){
numSb.append("十");
//这里表示的是11-19,去掉前面的一,变成十几
if(i == 0 && ch == '1'){
continue;
}
}else if(j == 2){
numSb.append("百");
}
numSb.append(SRC_NUMS[ch - '0']);
}
}
return numSb.reverse().toString();
}
/**
* 功能描述:对一个正整数进行反转输出
* 一个朋友在群里聊到面试被问了这样一个题目,对一个正整数进行逆序输出,需要使用递归实现,例如传入:12345,则返回:54321
* @author myclover
* @param n 传入的正整数
* @return
*/
public static int reverseInts(int n){
String str = String.valueOf(n);
if(n < 0 || str.length() > 10){
return -1;
}
if(str.length() == 1){
return n;
}else if(str.length() > 1){
char ch = str.charAt(str.length() - 1);
String s = str.substring(0, str.length() - 1);
return (Character.digit(ch, 10) * (int)Math.pow(10, str.length() - 1)) + reverseInts(Integer.parseInt(s)) ;
}
return -1;
}
/**
* 功能描述:写一个方法,实现字符串转换为int类型,不能使用Integer包装类
* @author myclover
* @param str 传入的字符串
* @return
*/
public static int converStrToInt(String str){
if(str.length() > 10){
return -1;
}
int re = 0;
int count = str.length();
boolean isNegative = false;
for(int i = 0 ; i < str.length() ; i++){
if(str.charAt(i) == '-'){
isNegative = true;
count-- ;
continue;
}
if(str.charAt(i) == '+'){
isNegative = false;
count-- ;
continue;
}
count-- ;
int s = Character.digit(str.charAt(i), 10);
re += s * (int)Math.pow(10, count);
}
if(isNegative){
return -re;
}
return re;
}
/**
* 功能描述:对传入的字符串进行逆序输出,不能使用Java API自带的反转方法
* @author myclover
* @param str 传入的字符串
* @return
*/
public static String convertStrToStr(String str){
StringBuffer sb = new StringBuffer("");
if(str.length() == 1){
return str;
}else if(str.length() > 1){
return sb.append(str.substring(str.length() - 1)).append(convertStrToStr(str.substring(0, str.length() - 1))).toString();
}
return null;
}
}
分享到:
相关推荐
Java程序员面试笔试真题与解析,包含各大IT企业面试笔试的题目
Java程序员面试笔试真题与解析,高清,绝对高清制作的
根据提供的文件信息,我们可以推断出这...综上所述,《Java程序员面试笔试宝典》这本书旨在全方位地帮助Java开发者们提高自己的技术水平和面试成功率,无论是对于初学者还是有一定工作经验的专业人士都非常有参考价值。
《Java程序员面试笔试宝典题库(2018最新版)》是为准备Java程序员面试的求职者精心编纂的一份参考资料。这份资源包含了2018年最新的面试问题和笔试题,旨在帮助求职者全面掌握Java编程语言的核心概念、技术要点以及...
2018java程序员面试宝典+题库,很全。压缩的文档,打开是PDF版
本书针对当前各大 IT 企业面试笔试中的特性与侧重点,精心挑选了近 3 年来 18 家顶级 IT 企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP 以及安全软件等,非常具有代表性与参考性...
《Java程序员面试笔试真题与解析》
Java程序员面试笔试宝典.pdf(高清扫描版,带超详细书签目录)
Java程序员在面试和笔试过程中经常会遇到一些看似简单实则暗藏陷阱的问题。这些题目旨在测试开发者对语言规范、面向对象编程原则以及最佳实践的理解。以下是对这些陷阱题的详细解析: 1. `abstract class Name { .....
Java程序员在面试和笔试过程中,会遇到各种各样的问题,这些问题涵盖了Java语言的基础、进阶、多线程、网络编程、数据库操作、设计模式、框架应用等多个方面。本篇文章将根据提供的资料,深入探讨其中的一些关键知识...
这些知识点涵盖了Java的基础语法、数据类型、运算符、控制结构、面向对象特性、异常处理以及与数据库交互的基础知识,都是Java程序员面试中常见的考察点。理解和掌握这些内容对于准备Java程序员面试至关重要。
本书除了对传统的计算机相关知识(Java语言基础知识、Web基础知识、数据结构与算法、操作系统、计算机网络与通信、数据库、设计模式等)以及面试笔试真题进行分析与解答外,还根据当前计算机技术的发展潮流,对面试...
这些知识点是Java程序员面试笔试题中的常见主题,深入理解和掌握这些内容,将有助于提升面试者的专业素养和应试能力。在准备面试时,不仅要理解这些知识点的概念,还要通过实际编码练习来增强应用能力。
《Java程序员面试笔试宝典》是由何昊编著的一本针对Java程序员面试和笔试的必备参考资料。这本书深入浅出地涵盖了Java编程领域的诸多关键知识点,旨在帮助求职者在面试过程中表现出色,顺利通过技术关卡。以下将详细...
《程序员面试笔试宝典》是一本专为Java程序员面试准备的综合指南,涵盖了从基础知识到实战应用的广泛内容。这份PDF文档是书籍的PAD版本,提供了高清的阅读体验,特别适合那些正在为Java面试笔试做准备的开发者们。...
Java程序员面试笔试宝典是何昊撰写的一本针对Java开发者面试和笔试准备的重要参考资料。这本书深入浅出地探讨了Java语言的关键特性和应用场景,旨在帮助求职者提升技能,顺利通过面试。以下是对Java语言特点的详细...
### Java程序员面试笔试真题库 #### 一、概述 《Java程序员面试笔试真题库》是一本专门为准备Java技术岗位面试和笔试的读者编写的参考资料。本书收录了大量来自实际招聘过程中的经典题目,并提供了详尽的解答和解析...