Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package me.lzb.common.utils;

/**
* Created by LZB on 2017/4/14.
*/
public class ByteUtils {

public static String byteToHexString(byte[] codes ){
StringBuffer buffer = new StringBuffer();
for(int i=0;i<codes.length;i++){
byte b = codes[i];
int value = b & 0xFF;
String strHex = Integer.toHexString(value);
if(strHex.length()< 2){
strHex = "0" + strHex;
}
buffer.append(strHex);
}
return buffer.toString();
}

public static int byteToInt(byte[] codes){
String s1 = byteToHexString(codes);
return Integer.valueOf(s1, 16).intValue();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.utils;
package me.lzb.common.utils;

import java.io.*;

Expand All @@ -15,17 +15,25 @@ public class FileUtils {
* @return true false
*/
public static boolean isFileExist(String path, String name) {
File file = new File(path + "\\" + name);
return isFileExist(path + File.separator + name);
}

public static boolean isFileExist(String f) {
File file = new File(f);
return file.exists();
}


/**
* 读取文件为二进制数组
* @param clzFileName 文件路径
* @return 数组
* @throws IOException
*/
public static byte[] readByteCodes(String clzFileName) throws IOException {
if(!isFileExist(clzFileName)){
return null;
}

File f = new File(clzFileName);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package me.lzb.utils;
package me.lzb.common.utils;

/**
* Created by LZB on 2017/4/4.
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils {

}
5 changes: 5 additions & 0 deletions group24/1148285693/learning2017/learning-basic/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,10 @@


<dependencies>
<dependency>
<groupId>me.lzb</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

/**
* 简易ArrayList
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

public class ArrayUtil {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

/**
* 左边比父节点小,右边比父节点大
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
package me.lzb.basic;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

/**
* Created by LZB on 2017/4/15.
*/
public class InfixExpr {


private String expr;

public InfixExpr(String expr) {
this.expr = expr;
}

public float evaluate() {

List<Node> list = processExpr();

Stack<String> symbolStack = new Stack<>();
Stack<Float> numberStack = new Stack<>();

boolean calLevel2 = false;
for (Node n : list) {
if (n.isNumber) {
numberStack.push(n.number);
if (calLevel2) {
calculate(symbolStack, numberStack, false);
calLevel2 = false;
}
} else {
symbolStack.push(n.symbol);

if (n.isLevel2()) {
calLevel2 = true;
}
}
}


Stack<Float> tn = new Stack<>();
int nsize = numberStack.size();
for (int i = 0; i < nsize; i++) {
tn.push(numberStack.pop());
}

numberStack = tn;


Stack<String> ts = new Stack<>();
int ssize = symbolStack.size();
for (int i = 0; i < ssize; i++) {
ts.push(symbolStack.pop());
}

symbolStack = ts;


while (!symbolStack.isEmpty()) {
calculate(symbolStack, numberStack, true);
}


return numberStack.pop();
}



private List<Node> processExpr() {
List<Node> list = new ArrayList<>();
char[] array = this.expr.toCharArray();
String number = "";
for (int i = 0; i < array.length; i++) {
if (Character.isDigit(array[i])) {
number = number + String.valueOf(array[i]);
} else {
Node num = new Node(Float.valueOf(number), null, true, -1);
number = "";
int calLevel = "+-".indexOf(array[i]) >= 0 ? 1 : 2;
Node sym = new Node(0, String.valueOf(array[i]), false, calLevel);
list.add(num);
list.add(sym);
}
}

Node num = new Node(Float.valueOf(number), null, true, -1);
list.add(num);
return list;
}


private void calculate(Stack<String> symbolStack, Stack<Float> numberStack, boolean isRe) {
if (symbolStack.isEmpty()) {
return;
}


String symbole = symbolStack.pop();

float right;
float left;

if(isRe){
left = numberStack.pop();
right = numberStack.pop();
}else {
right = numberStack.pop();
left = numberStack.pop();
}



float r = calculate(symbole, left, right);

numberStack.push(r);
}


private float calculate(String symbol, float left, float right) {
if ("+".equals(symbol)) {
return left + right;
}

if ("-".equals(symbol)) {
return left - right;
}

if ("*".equals(symbol)) {
return left * right;
}

if ("/".equals(symbol)) {
return left / right;
}

return 0;
}


private class Node {
float number;
String symbol;
boolean isNumber;
int calLevel;//加减1,乘除2

public Node(float number, String symbol, boolean isNumber, int calLevel) {
this.number = number;
this.symbol = symbol;
this.isNumber = isNumber;
this.calLevel = calLevel;
}

private boolean isLevel2() {
return calLevel == 2;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

/**
* Created by LZB on 2017/3/11.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.algorithm;
package me.lzb.basic;

/**
* 用双向链表实现LRU算法
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;


/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

/**
* list接口
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

/**
* 先进先出
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.lzb.datastructure;
package me.lzb.basic;

/**
* 先进后出
Expand Down
Loading