我男神的程式碼規範
阿新 • • 發佈:2020-12-10
技術標籤:java
package com.my;
import java.util.Objects;
/**
* 區間
*/
public class Section {
private final int left;
private final int right;
private final boolean leftClosed;
private final boolean rightClosed;
/**
* @param s 區間的字串表示,如:[0~100],(0~100],[0~100),[0,100]
*/
public static Section createSectionFromString(final String s){
//TODO: 解析字串,判斷合法性
String[] lr=s.split(",");
final boolean leftClosed=lr[0].startsWith("[");
final boolean rightClosed=lr[1].endsWith("]");
final int left=Integer.parseInt(lr[0].substring (1));
final int right=Integer.parseInt(lr[1].substring(0,lr[1].length()-1));
return new Section(left,leftClosed,right,rightClosed);
}
private Section(final int left, final boolean leftClosed, final int right, final boolean rightClosed) {
this.left = left;
this .right = right;
this.leftClosed=leftClosed;
this.rightClosed=rightClosed;
}
public void checkLegitimacy(final int left,final int right){
}
/**
* 判斷value是否在此區間中
*
* @param value
* @return true=在此區間中,false=不在此區間中
*/
public boolean inSection(final int value) {
if(this.leftClosed){
if(value<this.left){
return false;
}
} else {
if(value<=this.left){
return false;
}
}
if(this.rightClosed){
if(value>this.right){
return false;
}
} else {
if(value>=this.right){
return false;
}
}
return true;
}
@Override
public String toString() {
StringBuilder s=new StringBuilder();
s.append(this.leftClosed?'[':'(')
.append(this.left)
.append(',')
.append(this.right)
.append(this.rightClosed?']':')');
return s.toString();
}
@Override
public boolean equals(Object o) {
if(this == o) {
return true;
}
if(o == null || getClass() != o.getClass()) {
return false;
}
Section section = (Section) o;
return left == section.left &&
right == section.right &&
leftClosed == section.leftClosed &&
rightClosed == section.rightClosed;
}
@Override
public int hashCode() {
return Objects.hash(left, right, leftClosed, rightClosed);
}
}
)