java常用方法总结
最近打算换工作,还是需要补一下面试的基础知识,写了一些面试中可能会用到的常用算法、方法,以便复习
//99乘法表
/**
* 1*1
* 1*1 1*2
* 1*1 1*2 1*3
* ……
* */
private static void chengfabiao() {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+";");
}
System.out.println();
}
}
}
斐波那契数列:
//递归
private static int feibonaqie(int index) {
// TODO Auto-generated method stub
//0 1 1 2 3 5 8 13 21
int temp = 0; if(index == 0) {
return 0;
}else if(index == 1) {
return 1;
}else {
temp = feibonaqie(index-2)+feibonaqie(index-1);
//sum += temp;
//count++;
return temp;
} }
//循环
private static int feibonaqie2(int index) {
// TODO Auto-generated method stub
//0 1 1 2 3 5 8 13 21
int temp = 0;
int a = 0,b = 1;
if(index == 0) {
return 0;
}else if(index == 1) {
return 1;
}else { for(int i=2;i<=index;i++) {
temp = a+b;
a=b;
b=temp;
}
//sum += temp;
//count++;
return temp;
} }
/**
* @author QiaoJiafei
* @version 创建时间:2016年3月9日 下午12:02:09
* 类说明 获取数组平衡点
*/
public class TestArrayBlance {
public static void main(String[] args) {
int arr[] = {10,5,4,1,3,7};
getBlance(arr);
} private static void getBlance(int arry[]) {
// TODO Auto-generated method stub
int sum = 0;
int subsum = 0;
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<arry.length;i++) {
sum += arry[i];
}
for(int i=0;i<arry.length;i++) {
subsum += arry[i];
if(subsum == sum-subsum){
list.add(i);
}
for(int j=i+1;j<arry.length;j++) { if(subsum == sum-subsum-arry[j]) {
list.add(j);
}
}
}
System.out.println(list.size()+";"+list.get(0));
}
}
/*
* 4,模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/
public class StringTest_4 { /**
* @param args
*/
public static void main(String[] args) { String s = " ab c "; s = myTrim(s);
System.out.println("-" + s + "-");
} public static String myTrim(String s) { int start = 0, end = s.length() - 1; while (start <= end && s.charAt(start) == ' ') {
start++;
}
while (start <= end && s.charAt(end) == ' ') {
end--;
}
return s.substring(start, end + 1);
} }
/**
* @author QiaoJiafei
* @version 创建时间:2016年1月25日 上午11:52:50
* 类说明 获取最大子串。思路每次循环从子串的第一个位置开始start,以子串总长度-i结束end。整体依次往右移,这样循环。i代表循环次数,从0开始
*/
public class StringContents { public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "asdflkjljsodfjiosdjf";
String s2 = "jsodfjia";
fff(s1, s2);
} public static void fff(String s1, String s2) {
boolean flag = false;
int len = s2.length();
for (int i= 0; i< len; i++) {
for (int a = 0,b=len-i; b<=len; a++,b++) {
String s = s2.substring(a, b);
//System.out.println(s);
if(s1.contains(s)) {
System.out.println("index:"+s1.indexOf(s));
System.out.println(s);
flag = true;
return;
}
}
if(flag) {
break;
}
}
}
}
public class Test {
public static void main(String args[]) {
int [] arry = {5,45,2,1,8,6,12};
Test t = new Test();
}
//冒泡排序
void maoP(int a[]) {
int temp = 0;
for (int i=0;i<a.length-1;i++) {
for(int j=0; j<a.length-1-i; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void prin(int a[]) {
for (int i=0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
} //选择排序
void xuanZ(int a[]) {
for(int i=0; i<a.length; i++) {
//int p = a[i];
int temp = 0;
for (int j=i+1; j< a.length; j++) {
if (a[j] < a[i]) {
temp = a[i];
a[i] = a[j];
a[j] =temp;
//a[j] = temp;
}
}
}
} //快速排序
void kuaiS(int []a, int low, int high) {
if (low < high) {
int mid = kP(a, low, high);
kuaiS(a, low, mid-1);
kuaiS(a, mid+1, high);
}
}
int kP(int []a, int low, int high) {
int temp = a[low];
while (low < high) {
while (low < high && temp <= a[high]) {
high--;
}
a[low] = a[high];
while (low < high && temp >= a[low]) {
low++;
}
a[high] = a[low];
}
a[low] = temp;
return low;
}
//二分查找-普通循环
int erF(int a[], int tp) {
int mid = a.length/2;
int start = 0;
int end = a.length-1;
while (start <= end) {
mid = (end - start)/2 + start;
if (tp == a[mid]) {
return mid;
} else if (tp < a[mid]) {
end = mid -1;
} else if (tp > a[mid]) {
start = mid + 1;
} else {
return mid;
}
}
return -1;
}
//二分查找-递归
int erFeD(int a[],int dex, int start, int end) {
int mid = (end - start)/2 + start;
if (a[mid] == dex) {
return mid;
}
if (end <= start) {
return -1;
} else if (a[mid] > dex) {
return erFeD(a, dex, start, mid-1);
} else if (a[mid] < dex) {
return erFeD(a, dex, mid+1, end);
}
return -1;
}
//顺序查找
int shunX(int a[], int dex) {
for (int i=0; i< a.length-1; i++) {
if(a[i] == dex) {
return i;
}
}
return -1;
} //阶乘
void jieC(int temp) {
int f = 1;
for (int i=1; i<=temp; i++) {
f = f*i;
}
System.out.println(f);
}
//阶乘相加
void JieChJ(int temp) {
int sum = 0;
int f = 1;
for (int i=1; i<=temp; i++) {
f *= i;
sum += f;
}
System.out.println(sum);
}
//阶乘相加2
int jieC1(int temp) {
int f = 1;
for (int i=1; i<=temp; i++) {
f = f*i;
}
return f;
}
void jieC2(int temp) {
int sum = 0;
for (int i=1; i<=temp; i++) {
sum += jieC1(i);
}
System.out.println(sum);
}
//1~100的质数
void zhiS() {
for (int i=1; i<100; i+=2) {
boolean flag = true;
for (int j=2; j<i; j++) {
if (i%j == 0) {
flag = false;
break;
}
}
if (!flag) {
continue;
}
System.out.print(i + " ");
}
}
//1~100前5个被3整除的数
void zhengC() {
int temp = 0;
for (int i=1; i<=100; i++) {
if (i%3 == 0) {
temp++;
System.out.print(i + " ");
}
if (temp == 5) {
break;
}
}
}
}
输出:
0
12
345
6789
static void fString() {
String s = "0123456789";
int sum = 0;
for(int i=0;i<4;i++) {
sum +=i;
System.out.println(s.substring(sum, sum+i+1));
}
}
一个数组中的元素出现了3次的值
private static int getArrayValue(int array[]) {
// TODO Auto-generated method stub
int value = 0;
for(int i=0;i<array.length;i++) {
int count = 0;
for(int j=0;j<array.length;j++) {
if (array[i] == array[j]) {
count ++;
}
}
if(count == 3) {
value = array[i];
}
}
return value;
}
大小写转换
public static void main(String[] args) {
String u[] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
int num = 123433568;
String s = String.valueOf(num);
char c[] =s.toCharArray(); for(int i=0;i<c.length;i++) {
int j = Integer.parseInt(String.valueOf(c[i]));
System.out.print(u[j]);
}
}
java常用方法总结的更多相关文章
- Java 常用方法
java 图片上传from表单必加属性:enctype="multipart/form-data" 1.获取字符串的长度 : length() 2 .判断字符串的前缀或后缀与已知字 ...
- 22 java常用方法
/** * 通过正则获取该目录下满足条件的所有目录 * @param luceneFilePathRegular 正则目录,如/user/solrindex/正则表达式 * @return 满足正则表 ...
- java常用方法
public static int byte2int(byte b) { int i = b & 0x07f; if (b < 0) { i |= 0x80; } return i; } ...
- java常用方法集合
1.获取当前日期 // 获取当前日期 public Date getDate(int num) { Calendar cal = new GregorianCalendar(); cal.setTim ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java中集合类中Collection接口中的Map接口的常用方法熟悉
1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...
- Java中从控制台输入数据的几种常用方法
Java中从控制台输入数据的几种常用方法 一.使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in ...
- Java String类的常用方法
String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original) ...
- Java基础(30):String对象的常用方法与实例(String类)
Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...
随机推荐
- 重新想象 Windows 8 Store Apps (50) - 输入: 边缘手势, 手势操作, 手势识别
[源码下载] 重新想象 Windows 8 Store Apps (50) - 输入: 边缘手势, 手势操作, 手势识别 作者:webabcd 介绍重新想象 Windows 8 Store Apps ...
- csharp: Sound recording
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsof ...
- 如何使用mybatis《三》
在前边阐述了单独使用mybatis的方法,在实际开发过程中mybatis经常和spring一起使用,即mybatis和spring进行集成,现在我们来看如何集成. mybatis和spring进行集成 ...
- DDD开发框架ABP之导航菜单
每一个网站都会有导航菜单(通常不止一个),ASP.NET Boilerplate(后文简称ABP)提供了一种创建和使用菜单的通用架构,利用架构我们可以方便的创建菜单并显示给用户.本文主要说明菜单的创建 ...
- windbg定位死锁
操作系统对死锁的描述如下: 所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 那么为什么会产生死锁呢? 1.因为系统资源不足. ...
- MessageBox的Buttons和三级联动
一.MessageBox的Buttons MessageBox.Show可以出现有按钮的对话框 例如: DialogResult dr = MessageBox.Show("是否要继续吗?& ...
- nodeJS中npm常见的命令
常用的nodeJS中npm的命令:npm主要是node包管理和发布的工具.npm常用的命令:1:npm install <name> //(下载包) 下载后的包放在当前路径下面 npm i ...
- 初识python(1)
1.python简介 Python是一种面向对象.直译式计算机程序语言.也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定. Python语法简捷而清晰,具有丰富和强大的类库.它 ...
- Python基础(9)--正则表达式
正则表达式是一个很有用的工具,可处理复杂的字符匹配和替换工作.在Python中内置了一个re模块以支持正则表达式. 正则表达式有两种基本的操作,分别是匹配和替换. 匹配就是在一个文本字符串中搜索匹配一 ...
- android 进程间通信---Service Manager(1)
Bind机制由4个部分组成.bind驱动,Client,ServiceManager &Service 1.Bind其实是一个基于linux系统的驱动,目的是为了实现内存共享. bind驱动的 ...