728x90
반응형

Cal.java

import java.util.Calendar;

public class Cal {

	public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		int year = cal.get(Calendar.YEAR);
		int month = cal.get(Calendar.MONTH) + 1;
		int day = cal.get(Calendar.DAY_OF_MONTH);
		
		System.out.println(year+"-"+month+"-"+day);
	}

}

MONTH 부분에 +1을 하지않고 출력하면 저번달 숫자가 나옵니다.

 

원인은 모르지만 보기 편하게 +1을 하고 사용합시다.

728x90
반응형
728x90
반응형
public class test {

	public static void main(String[] args) {
		String str ="200";
		int num;
		
		
		// 문자를 숫자로 변환
		num=Integer.parseInt(str);
		System.out.println(num+" <--문자를 숫자로 변환");
		
		num +=100; // num==300
		
		// 숫자를 문자로 변환
		str = Integer.toString(num);
		System.out.println(str+" <--숫자를 문자로 변환");
		
	}

}

 

 

 

728x90
반응형
728x90
반응형
 데이터타입 클래스

 

public class Demon { // 귀멸의 칼날 캐릭터
	
	public String name; // 이름
	public int age; // 나이
	public String gender; // 성별
	public boolean oni; // 오니 여부
	
}

저는 구조체처럼 보이기도 하고 데이터베이스의 스키마 같은 역할을 하는것 처럼 보인다고 생각했습니다.

 

 

 

객체 생성 및 활용

 

이름을 간단하게 출력해봅시다

 

- for문을 사용하여 이름 출력하기

 

public class DemonMain {

	public static void main(String[] args) {
    	// 객체 생성
		Demon d1 = new Demon();
		d1.name = "탄지로"; 
		d1.age = 16;
		d1.gender = "남자";
		d1.oni = false;
		
		Demon d2 = new Demon();
		d2.name = "네즈코"; 
		d2.age = 15;
		d2.gender = "여자";
		d2.oni = true;
		
		Demon d3 = new Demon();
		d3.name = "렌고쿠"; 
		d3.age = 18;
		d3.gender = "남자";
		d3.oni = false;
		
		Demon d4 = new Demon();
		d4.name = "아카자"; 
		d4.age = 200;
		d4.gender = "남자";
		d4.oni = true;
		
        // 정적 배열과 일반 for문에 넣어서 활용
		Demon[] demon = {d1,d2,d3,d4};
		
		for(int i=0;i<demon.length;i++) {
			System.out.print(demon[i].name+" ");
		}
		
	}
}

객체의 각 요소는 객체.변수의 모양으로 사용할 수 있습니다.

 

 

 

 

 

- foreach문을 사용하여 이름 출력하기

 

// foreach문
for(Demon d:demon) {
	System.out.print(d.name +" ");
}

for(데이터 타입 변수명 : 사용할 배열) 의 모양으로 이루어져 있습니다. 일반적인 for문과 달리 특정한 증가값을 쓰지 않습니다. 자체적으로 넣어준 배열속 위치를 하나씩 증가시키면서 실행됩니다.

 

(python for문에서 리스트를 넣어 사용하는 느낌이라고 생각합니다)

 

 

 

728x90
반응형
728x90
반응형

 

qr코드를 인식하기 위해 pyzbar를 설치하고 실행했는데 자꾸 오류가 납니다.

 

설치된 곳에 들어갔지만 libzbar-64.dll도 잘 들어있습니다.

 

 

- 오류 - 

더보기

Traceback (most recent call last):
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 58, in load
    dependencies, libzbar = load_objects(Path(''))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 50, in load_objects
    deps = [
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 51, in <listcomp>
    cdll.LoadLibrary(str(directory.joinpath(dep)))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependencies). Try using the full path with constructor syntax.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\한이음\QR\aws rds와 바코드인식 연동.py", line 3, in <module>
    from pyzbar import pyzbar
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\pyzbar.py", line 7, in <module>
    from .wrapper import (
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\wrapper.py", line 139, in <module>
    zbar_version = zbar_function(
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\wrapper.py", line 136, in zbar_function
    return prototype((fname, load_libzbar()))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\wrapper.py", line 115, in load_libzbar
    libzbar, dependencies = zbar_library.load()
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 60, in load
    dependencies, libzbar = load_objects(Path(__file__).parent)
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 54, in load_objects
    libzbar = cdll.LoadLibrary(str(directory.joinpath(fname)))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax.

 

 

 

집에있는 오래된 PC에서는 문제없이 실행되는데 새로운 노트북에서만 자꾸 실행이 되지 않았습니다. PC의 파이썬 자체를 가져와서 노트북에서 실행하는 것도 실패했습니다. 그러던 도중 해결 방법을 찾았습니다.

 

 

 

 

해결 방법

Download Visual Studio 2013용 Visual C++ 재배포 가능 패키지 from Official Microsoft Download Center

 

Download Visual Studio 2013용 Visual C++ 재배포 가능 패키지 from Official Microsoft Download Center

중요! 아래에서 언어를 선택하면 전체 페이지 내용이 해당 언어로 신속하게 변경됩니다. 독일어러시아어스페인어영어이탈리아어일본어중국어(간체)중국어(번체)프랑스어한국어 다운로드 Visual

www.microsoft.com

 

Visual C++을 다운로드 받으시면 됩니다. 저는 2013버전을 받고 해결되었고 2019 버전은 효과가 없었습니다. 2015-2019 라고 써있던 버전인데도 안됐으니까.. 2013을 다운받는걸 추천드립니다.

 

 

오래된 PC에서는 여러버전의 C++이 설치되어 있었는데 새로 산 노트북은 2013을 설치하기 전에 C++ 프로그램이 전혀 없었습니다. pyzbar도 C++을 사용하네요....

728x90
반응형

'언어 > Python' 카테고리의 다른 글

파이썬 함수  (0) 2021.07.16
파이썬 조건문과 반복문  (0) 2021.07.09
파이썬 리스트와 딕셔너리  (0) 2021.07.07
파이썬 문자열 다루기  (0) 2021.07.06
파이썬 변수 선언과 자료형  (0) 2021.07.02
728x90
반응형

fjdkslvn@gmail.com 문자열을 자른 모습

 


public class Split {

	public static void main(String[] args) {
		String str ="fjdkslvn@gmail.com";
		
		// 직접 가져오기
		System.out.println(str.split("@")[0]);
		System.out.println(str.split("@")[1]);
		
		String[] mail = str.split("@"); // 자른 문자열을 배열에 저장
		System.out.println(mail[0]);
		System.out.println(mail[1]);

	}

}

정말 간단합니다. split( ) 메서드를 통해 문자열을 자를 수 있습니다.

 

잘린 문자열은 문자열 배열에 넣어 활용할 수 있고 직접 참조도 가능합니다.

 

문자열 자르기는 파이썬과 동일하기 때문에 쉽게 이해할 수 있었습니다.

728x90
반응형
728x90
반응형
FileInputStream의 기초

 

hi, my name is fjdkslvn!

import java.io.FileInputStream;

public class Fjdkslvn {

	public static void main(String[] args) throws Exception {
		
		FileInputStream file = new FileInputStream("C:\\Users\\fjdks\\Desktop\\fjdkslvn.txt"); // \를 표시하고싶다면 두번쓰자

		int num;

		num=file.read();
		System.out.print((char)num);
		
		num=file.read();
		System.out.print((char)num);
		
		num=file.read();
		System.out.print((char)num);
		
		num=file.read();
		System.out.print((char)num);
		
	}

}

FileInputStream을 쓰기위해 import를 해준다. (throws Exception을 해줘야 오류를 무시하고 실행가능)

 

읽어오길 원하는 파일의 위치를 연결시키고 read() 메서드를 통해 int 값으로 하나씩 받아온다.

 

file.read()를 사용할 때 마다 특별한 증가값을 작성하지 않아도 자동으로 다음 문자를 읽어온다.

 

숫자로 읽은 값을 char를 사용하여 문자로 변환하여 출력한다.

 

4번을 반복하여 출력했더니 공백을 포함하여 'hi, '가 출력되었다.

 

 

 

 

사용 방법

 

import java.io.FileInputStream;

public class Fjdkslvn {

	public static void main(String[] args) throws Exception {
		
		FileInputStream file = new FileInputStream("C:\\Users\\fjdks\\Desktop\\fjdkslvn.txt"); // \를 표시하고싶다면 두번쓰자

		int num;
		String str = "";
		
		while((num=file.read()) != -1) {
			str += (char)num;
		}
		
		System.out.println(str);
		
	}

}

while문을 사용하여 메모장의 마지막 문자까지 받아오도록 한다.

 

int로 받은 문자를 char형으로 변환한 후에 문자열에 이어붙인다.

728x90
반응형

+ Recent posts