import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest1{
private Pattern pattern;
private Matcher matcher;
public RegexTest1(String pattern){
this.pattern = Pattern.compile(pattern);
}
public boolean validate(String text){
matcher = pattern.matcher(text);
return matcher.matches();
}
public static void main(String [] args){
String passwordPattern = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
String emailPattern = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
String ipaddressPattern = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
+ "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
RegexTest1 password = new RegexTest1(passwordPattern);
RegexTest1 email = new RegexTest1(emailPattern);
RegexTest1 ipaddress = new RegexTest1(ipaddressPattern);
String text1 = "aaSS12!@";
String text2 = "ASsdv221@nate.com";
String text3 = "127.1.1.1";
System.out.println(password.validate(text1) + "\t" + text1);
System.out.println(email.validate(text2) + "\t" + text2);
System.out.println(ipaddress.validate(text3) + "\t" + text3);
text1 = "aaS!@";
text2 = "ASsdv221@natecom";
text3 = "0127.1.1.1";
System.out.println(password.validate(text1) + "\t" + text1);
System.out.println(email.validate(text2) + "\t" + text2);
System.out.println(ipaddress.validate(text3) + "\t" + text3);
}
}
Post List
2019년 1월 24일 목요일
자바 정규식(비밀번호, 이메일, 아이피주소)
자바 geotools 15.1 좌표간 거리계산
import org.geotools.geometry.jts.JTS;
import org.geotools.referencing.CRS;
import org.geotools.referencing.GeodeticCalculator;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import com.vividsolutions.jts.geom.Coordinate;
public class GeoDistanceTest {
private CoordinateReferenceSystem sourceCRS;
private String sourceX;
private String sourceY;
public GeoDistanceTest(String sourceCRS, String sourceX, String sourceY) throws Exception {
this.sourceCRS = CRS.decode(sourceCRS);
this.sourceX = sourceX;
this.sourceY = sourceY;
}
public void distanceCalculator(String x, String y) throws Exception {
GeodeticCalculator gc = new GeodeticCalculator(sourceCRS);
gc.setStartingPosition(JTS.toDirectPosition(new Coordinate(Double.parseDouble(sourceX), Double.parseDouble(sourceY)),sourceCRS));
gc.setDestinationPosition(JTS.toDirectPosition(new Coordinate(Double.parseDouble(x), Double.parseDouble(y)),sourceCRS));
double distance = gc.getOrthodromicDistance();
System.out.println("distance (m) : "+ distance);
}
public static void main(String[] args) throws Exception {
GeoDistanceTest g = new GeoDistanceTest("EPSG:4326", "37.5639686", "126.9794393");
g.distanceCalculator("37.5639686", "126.9794393");
}
}
자바 geotools 15.1 좌표 변환
import org.geotools.geometry.jts.JTS;
import org.geotools.geometry.jts.JTSFactoryFinder;
import org.geotools.referencing.CRS;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
public class GeoTransTest {
private CoordinateReferenceSystem sourceCRS;
private CoordinateReferenceSystem targetCRS;
public GeoTransTest(String sourceCRS, String targetCRS) throws Exception {
this.sourceCRS = CRS.decode(sourceCRS);
this.targetCRS = CRS.decode(targetCRS);
}
public void transform(String x, String y) throws Exception {
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
Coordinate coord = new Coordinate(Double.parseDouble(x), Double.parseDouble(y));
Geometry sourceGeometry = geometryFactory.createPoint(coord);
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS);
Geometry targetGeomery = JTS.transform(sourceGeometry, transform);
Point targetPoint = targetGeomery.getCentroid();
System.out.println("변환전 EPSG:4326(WGS84) X : "+x + "\t EPSG:4326(WGS84) Y : "+y);
System.out.println("변환후 EPSG:3857 X : "+targetPoint.getX() + "\t EPSG:3857 Y : "+targetPoint.getY());
}
public static void main(String[] args) throws Exception {
GeoTransTest g = new GeoTransTest("EPSG:4326", "EPSG:3857");
g.transform("37.5639686", "126.9794393");
}
}
자바 진법 변환
import java.util.LinkedList;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("변환할 숫자를 입력하세요.");
String value = sc.next();
for(int i=2;i<=16;i++){
LinkedList list = convert(Integer.parseInt(value),i);
System.out.print(value + "의 " + i +" 진법 : ");
while(!list.isEmpty()){
System.out.print(list.pop());
}
}
}
public static LinkedList convert(int value, int i){
LinkedList list = new LinkedList();
while(value != 0){
// 나머지가 0~9 사이 일때
if((value % i)<10){
list.push(String.valueOf((value % i)));
}else{
// 나머지가 10 이상일때 해당하는 알파뱃을 저장
char temp1 = (char)((value % i)+55);
list.push(String.valueOf(temp1));
}
//몫을 구함
value /= i;
}
return list;
}
}
카카오 지도 api 사용
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;
public class KakaoGeoApi1 {
public static void main(String[] args) throws Exception {
System.out.println(addrToCoord(URLEncoder.encode("주소입력","UTF-8")));
System.out.println(coordToAddr("37.5665958","126.9783813"));
}
public static String addrToCoord(String addr){
String url = "https://dapi.kakao.com/v2/local/search/address.json?query="+addr;
String json = "";
try{
json = getJSONData(url);
}catch(Exception e){
e.printStackTrace();
}
return json;
}
public static String coordToAddr(String x, String y){
String url = "https://dapi.kakao.com/v2/local/geo/coord2address.json?x="+x+"&y="+y+"&input_coord=WGS84";
String json = "";
try{
json = getJSONData(url);
}catch(Exception e){
e.printStackTrace();
}
return json;
}
private static String getJSONData(String apiUrl) throws Exception {
String jsonString = new String();
String buf;
String apikey = "apikey"; //apikey
URL url = new URL(apiUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
String auth = "KakaoAK "+apikey;
conn.setRequestMethod("GET");
conn.setRequestProperty("X-Requested-With", "curl");
conn.setRequestProperty("Authorization", auth);
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "UTF-8"));
while ((buf = br.readLine()) != null) {
jsonString += buf;
}
return jsonString;
}
}
네이버 지도 api 사용
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class NaverGeoApi {
public static void main(String[] args) {
String clientId = "clientId "; //clientId
String clientSecret = "clientSecret "; //clientSecret
try {
String addr = URLEncoder.encode("주소입력", "UTF-8"); //주소입력
String apiURL = "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode?query=" + addr; //json
//String apiURL = "https://openapi.naver.com/v1/map/geocode.xml?query=" + addr; // xml
URL url = new URL(apiURL);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("X-NCP-APIGW-API-KEY-ID", clientId);
con.setRequestProperty("X-NCP-APIGW-API-KEY", clientSecret);
int responseCode = con.getResponseCode();
BufferedReader br;
if(responseCode==200) {
br = new BufferedReader(new InputStreamReader(con.getInputStream()));
} else {
br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
}
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = br.readLine()) != null) {
response.append(inputLine);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
System.out.println(e);
}
}
}
피드 구독하기:
덧글 (Atom)