로또 번호 추출하는 자바 매서드를 만들어 봤습니다.

코드 및 주석은 아래를 확인해 주세요.

import java.util.*;

public class Lotto1 {

    public static void main(String[] args) {
        GetLottoNumbers();
    }

    private static void GetLottoNumbers()
    {
        ArrayList SelectedNumbers6 = new ArrayList(); // 선택된 6개의 번호 정의
        ArrayList Balls = new ArrayList(); // 로또 45개의 공 정의
        
        // 45개의 공 번호 초기화 시작
        for(int i=1; i<=45; i++)
        {
            Balls.add(i);
        }
        // 45개의 공 번호 초기화 끝
        
        // 공 선택 (6번 반복) 시작
        for(int i = 0; i<6 ;i++)
        {
            int selected_index = (int)Math.floor(Math.random()*(45-i)); // 랜덤으로 1개의 공 선택 
            SelectedNumbers6.add(Balls.get(selected_index)); // 선택한 공을 선택된 번호에 저장
            Balls.remove(selected_index); // 선택된 공 삭제
        }
        // 공 선택 (6번 반복) 끝

        // 출력 시작
        String PrintResult = "";
        
        for(int i = 0; i<6 ;i++)
        {
            PrintResult += SelectedNumbers6.get(i); 
            if(i != 5) PrintResult +=". ";
        }
        
         System.out.println(PrintResult);
         // 출력 끝
    }
}

내용 확인 후 잘못된 점이나 궁금하신 점이 있다면 댓글주세요.

감사합니다.

사용방법(아래애도 동일한 내용이 있습니다.)


 html 편집을 활성화 하고 아래 pre 태그 부분을 복사해서 붙여넣기 한다음에 html 편집을 비활성화 한 후에 "코드입력" 부분에 원하는 코드를 붙여넣기 하면 됩니다.


<pre class='brush:html'>

코드입력

</pre>


사용방법. 끝.


안녕하세요.


코드를 블로그에 쉽게 공유하기 해서 이전에 Online syntax highlighter like TextMate 를 소개했었습니다. 


이 프로그램은 설치가 필요없다는 장점이 있지만 코드를 공유할 때마다 테마를 다시 지정해 줘야하고 줄 번호가 없는 단점을 발견했습니다.

그래서 귀찮더라도 초반에 설정을 해주면 다음부터는 쉽게 사용이 가능한 SyntaxHighlighter를 사용하기로 했습니다.


제가 보고 따라한 출처는 다음과 같습니다.


출처1. 티스토리(tistory)에 SyntaxHighlighter를 적용하여 소스코드 글자색 변경하기(http://hijuworld.tistory.com/25)

출처2. 티스토리 SyntaxHighlighter 테마 적용 하기(http://hijuworld.tistory.com/26)


현재 4버전이 나와있지만 터미널로 빌드 하는 과정이 있어서 따라하기 어렵네요..

그래서 출처 블로그에 있는 3.0.83 버전을 설치하였습니다.


새 버전에 도전해 보실 분은 아래 링크를 클릭해서 해보시기 바랍니다.

https://github.com/syntaxhighlighter/syntaxhighlighter


1. 소스 다운로드 및 압축 풀기

    - 아래 링크를 클릭해서 소스를 다운로드 받습니다.

syntaxhighlighter_3.0.83.zip



2. 스킨편집(티스토리 기준)

    - 블로그 관리 페이지 왼쪽 메뉴에서 "꾸미기" - "스킨 편집" 메뉴로 들어갑니다.

    - 왼쪽에 있는 HTML 편집 버튼을 클릭합니다.

    - 파일 업로드 탭을 선택합니다.

    - 압축을 푼 폴더에서 "scripts", "styles" 폴더에 있는 모든 파일을 업로드 합니다.

    - html 탭을 선택합니다.

    - 아래 코드를 head 태그 안쪽 아래 부분에 추가합니다.

      (주의: head태그 빼고 붙여넣을 것)

<head>

...중략... <link href="./images/shCore.css" rel="stylesheet" type="text/css"> <link href="./images/shThemeMidnight.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="./images/shCore.js"></script> <script type="text/javascript" src="./images/shBrushJScript.js"></script> <script type="text/javascript" src="./images/shLegacy.js"></script> <script type="text/javascript" src="./images/shBrushBash.js"></script> <script type="text/javascript" src="./images/shBrushCpp.js"></script> <script type="text/javascript" src="./images/shBrushCSharp.js"></script> <script type="text/javascript" src="./images/shBrushCss.js"></script> <script type="text/javascript" src="./images/shBrushDelphi.js"></script> <script type="text/javascript" src="./images/shBrushDiff.js"></script> <script type="text/javascript" src="./images/shBrushGroovy.js"></script> <script type="text/javascript" src="./images/shBrushJava.js"></script> <script type="text/javascript" src="./images/shBrushPhp.js"></script> <script type="text/javascript" src="./images/shBrushPlain.js"></script> <script type="text/javascript" src="./images/shBrushPython.js"></script> <script type="text/javascript" src="./images/shBrushRuby.js"></script> <script type="text/javascript" src="./images/shBrushScala.js"></script> <script type="text/javascript" src="./images/shBrushSql.js"></script> <script type="text/javascript" src="./images/shBrushVb.js"></script> <script type="text/javascript" src="./images/shBrushXml.js"></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; // link removal SyntaxHighlighter.defaults["toolbar"] = false; // toolbar removal SyntaxHighlighter.defaults["tab-size"] = 2; // soft-tab : 2 spcaes SyntaxHighlighter.all(); </script> </head>


3. 사용해 보기


사용 방법은 html 편집을 활성화 하고 아래 pre 태그 부분을 복사해서 붙여넣기 한다음에 html 편집을 비활성화 한 후에 "코드입력" 부분에 원하는 코드를 붙여넣기 하면 됩니다.

참 쉽조?


<pre class='brush:html'>

코드입력

</pre>


사용하면 아래와 같은 결과가 나타납니다.

<!doctype html> <html> <head> <meta charset="utf-8"> <title>무제 문서</title> </head> <body> </body> </html>

적용 언어 및 테마에 대한 정보는 아래 링크를 클릭하면 확인할 수 있습니다.

https://github.com/syntaxhighlighter/syntaxhighlighter/wiki/Brushes-and-Themes


Brush nameBrush aliasesFile name
ActionScript3as3, actionscript3shBrushAS3.js
Bash/shellbash, shellshBrushBash.js
ColdFusioncf, coldfusionshBrushColdFusion.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
Erlangerl, erlangshBrushErlang.js
GroovygroovyshBrushGroovy.js
JavaScriptjs, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js


이제부터는 SyntaxHighlighter로 코드를 공유하겠습니다.


감사합니다.

윈도우 프로그램을 개발할 파일 또는 폴더를 불러올 때 사용할 수 있는 도구 상자를 제공합니다.
파일을 선택하기 위해서는 OpenFileDialog 도구 상자를 사용하고, 폴더를 선택하기 위해서는 FolderBrowserDialog 도구 상자를 사용합니다.

이 중에서 폴더를 선택하기 위한 FolderBrowserDialog 은 사용하기에 불편한 점이 있습니다.
폴더 경로를 트리 구조로만 확인할 수 있고 텍스트로 확인할 수 없을 뿐만 아니라, 폴더 경로를 복사했다고 하더라도 붙여넣을 수 있는 방법이 없어서 트리구조에서 일일이 찾아야 합니다.

그래서 생각한 것이 OpenFileDialog 를 사용해서 폴더를 선택하는 방법이 있을까 하고 구글 검색을 하게 되었습니다.
검색 결과 OpenFileDialog 와 비슷한 형식으로 폴더를 선택하기 위해서는 MS에서 제공하는 WindowsAPICodePack 을 설치해서 CommonOpenFileDialog 도구 상자를 사용하는 것으로 문제를 해결할 수 있습니다.

제가 찾은 글은 여러개이지만 제가 참고한 출처는 아래와 같습니다.
Use a standard Windows dialog to let the user select a folder in C#
http://csharphelper.com/blog/2014/02/use-a-standard-windows-dialog-to-let-the-user-select-a-folder-in-c/

윈도우 폼 프로젝트 예제에서 CommonOpenFileDialog 를 사용하기 위해서는 Nuget 패키지에서 WindowsAPICodePack-Shell 을 설치하면 됩니다.
https://www.nuget.org/packages/WindowsAPICodePack-Shell

Visual Studio 2017 기준으로 상단 메뉴의 [도구(T) → Nuget 패키지 관리자(N) → 패키지 관리자 콘솔(O)]을 실행한 다음 아래 명령어를 입력합니다.

PM> Install-Package WindowsAPICodePack-Shell -Version 1.1.1
(상단메뉴의 [도구(T) → Nuget 패키지 관리자(N) → 솔루션용 Nuget 패키지 관리...]에서도 설치가 가능하지만 무슨 이유에서 인지 설치 시 오류가 발생하였습니다.)

설치가 완료되면 다음과 같이 코딩을 진행합니다.

1. WindowsAPICodePack Dialogs 클래스를 참조합니다.

using Microsoft.WindowsAPICodePack.Dialogs;

2. 버튼 클릭 이벤트 안애 아래와 같은 명령어를 입력합니다.

// CommonOpenFileDialog 클래스 생성
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
// 처음 보여줄 폴더 설정(안해도 됨)
//dialog.InitialDirectory = "";
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
    label.Text = dialog.FileName; // 테스트용, 폴더 선택이 완료되면 선택된 폴더를 label에 출력
}

버튼을 클릭하면 다음과 같은 화면이 나타납니다.

감사합니다.

+ Recent posts