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 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...
随机推荐
- 优秀程序设计的Kiss原则(keep it simple,stupid)
优秀程序设计的Kiss原则(keep it simple,stupid) 良好的编程原则与良好的设计工程原则密切相关.本文总结的这些设计原则,帮助开发者更有效率的编写代码,并帮助成为一名优秀的程序员. ...
- Crash日志符号化
1.符号化crash日志需要3样东西: 1).crash日志本身(如:example.crash),从Xcode的organizer导出或者来自Itunes Connect. 2).crash日志所对 ...
- Win10安装framework3.5
.NET少不了framewrok,其版本也比较多,默认情况下win7及上版本没有安装framework3.5,但有些软件又需要它,比如arcgis软件在安装时会检测是否存在3.5,如果没有,将不会正常 ...
- This task is currently locked by a running workflow and cannot be edited
转自:http://geek.hubkey.com/2007/09/locked-workflow.html 转自:http://blogs.code-counsel.net/Wouter/Lists ...
- 一个线程加一运算,一个线程做减一运算,多个线程同时交替运行--synchronized
使用synchronized package com.pb.thread.demo5; /**使用synchronized * 一个线程加一运算,一个线程做减法运算,多个线程同时交替运行 * * @a ...
- windows log 打印语句
1.格式化字符串(Writes formatted data to the specified string) wchar_t szMessage[260]; PWSTR pszFunction = ...
- LeetCode 6 ZigZag Conversion(规律)
题目来源:https://leetcode.com/problems/zigzag-conversion/ The string "PAYPALISHIRING" is writt ...
- 使用APUE(UNIX高级编程)源代码
方法一:1.APUE源代码下载:http://www.apuebook.com/code3e.html2.我保存到了/root下.解压缩:tar -xzvf src.tar.gz3.cd apue.2 ...
- 获取byte数组的实际使用长度
背景:byte.length只能获取到初始化的byte数组长度,而不是实际使用的长度,因此想要获取到实际的使用长度只能靠其他方法实现. 方法一: public class ByteActualLeng ...
- sgu 104 Little shop of flowers 解题报告及测试数据
104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB 问题: 你想要将你的 ...