Category Archives: Java

「Java入門」Javaで100以内の整数は2、3、5で同時に割り切れて、合計を計算する

Javaコード:
public class ThirdClass {
public static void main(String[] args)
{
int iSum = 0;

System.out.print(“条件を満足する数字:”);
for(int i = 1; i <= 100; i++)
{
if(i%2 == 0 && i%3 == 0 && i%5 == 0)
{
iSum += i;
System.out.print(i+” “);
}
}

System.out.println(“\n合計:”+iSum);
}
}

結果:
条件を満足する数字:30 60 90
合計:180

Javaでキーボードからランダムに10個の整数を入力して昇順にソートするサンプルプログラム

Javaコード:

import java.util.*;
public class SecondClass {
public static void main(String[] args)
{
//整数型配列の定義
int[] aNum = new int[10];
//オブジェクトのインスタンス化
Scanner sc = new Scanner(System.in);

//整数を入力
for(int i = 0; i < 10; i++)
{
aNum[i] = sc.nextInt();
}

//バブルソート
for(int i = 1; i < 10; i++)
{
for(int j = 9; j >= i; j–)
{
if(aNum[j] < aNum[j-1])
{
//バブルソートアルゴリズム
aNum[j] = aNum[j] ^ aNum[j-1];
aNum[j-1] = aNum[j] ^ aNum[j-1];
aNum[j] = aNum[j] ^ aNum[j-1];
}
}
}

//出力
System.out.print(“昇順ソート:”);
for(int i = 0; i < 10; i++)
{
System.out.print(aNum[i]+” “);
}
}

}

整数を入力: 20 40 90 80 78 38 24 84 8 21
昇順ソート: 8 20 21 24 38 40 78 80 84 90

Javaで整数オーバーフローの処理サンプルコード

Javaコード:
// 整数オーバーフローの場合,強制変換処理
public class Startnews24_IntOver
{
public static void main(String args[])
{
int abx = java.lang.Integer.MAX_VALUE ;

System.out.println(“abx= “+abx);
System.out.println(“abx + 1 = “+(abx+1));
System.out.println(“abx+ 2 = “+(abx+2L));
System.out.println(“abx + 3 = “+((long)abx+3));
}

}
出力結果:
abx = 2147483647
abx + 1 = -2147483648
abx + 2 = 2147483649
abx+ 3 = 2147483650

javaの条件分岐switch文の制御サンプル

Javaコード:

// 条件分岐 switch
public class Startnews24_Switch

{

public static void main(String[] args)

{
int a = 100 , b = 7 ;
char oper =’/’ ;
switch(oper) // switch文

{
case ‘+’:

System.out.println(a+” + “+b+” = “+(a+b));

break ;

case ‘-‘:

System.out.println(a+” – “+b+” = “+(a-b));

break ;

case ‘*’:

System.out.println(a+” * “+b+” = “+(a*b));

break ;

case ‘/’:

System.out.println(a+” / “+b+” = “+((float)a/b));

break ;

default:

System.out.println(“未知操作”);

}

}

}

出力結果:

100 / 7 = 14.285714

説明:

 

「Javaの学習」JavaでLambdaを使用するサンプルプログラム

 

1.Lambda syntax
(parameters) -> expression
(parameters) -> statement
(parameters) -> { statements }

2.Lamba表現式の例
(intx,inty) -> x + y
() -> System.out.println(“hi “+ s);
(String s) -> {intn = s.length();returnn; }

3.Runnableを実行
Runnable r = () -> System.out.println(“Hello!”);
r.run();

3.PIメソッド
Callable<Double> pi = () ->3.14;
Double p = pi.call();

4.文字列長さによって文字列をソート
String[] words = {“aaa”,”b”,”cc”};
Arrays.sort(words, (s1, s2) -> s1.length() – s2.length());

// 等しい:
Arrays.sort(words, (String s1, String s2) -> s1.length() – s2.length());

 

tapestryでimageを表示するサンプルプログラム

javaコード下記:
public class ImageTest {
@Inject
private ComponentResources _resources;

public Link getChart3() {
return _resources.createEventLink(“chart”, false, null);
}

public StreamResponse onChart(){
return new StreamResponse() {
public String getContentType(){
return “image/png”;
}
public InputStream getStream() throws IOException {
try {
return new ClasspathResource(“diagrams/vacation.png”).openStream();
} catch (IOException ex) {
throw new RuntimeException(“Cannot read image file.”, ex);
}
}
public void prepareResponse(Response response){}
};
}
}

ImageTest.tmlファイル

<html
xmlns:t=”http://tapestry.apache.org/schema/tapestry_5_3.xsd”
xmlns:p=”tapestry:parameter”>
<header>
<title>show image</title>
</header>
<body>
<img src=”${chart3}”/>
</body>
</html>

MyEclipseでsvnプラグインを使用する際に「Failed to load JavaHL Library.」の対策

エラーメッセージ:
Failed to load JavaHL Library.

対策:
MacPortsをダウンロード
http://www.macports.org/
sudo port install subversion-javahlbindings +no_bdb +universal

Windowsでgradleをインストール、環境変数の設定

1.gradleをダウンロード
URL:http://www.gradle.org/downloads
目標ディレクトリの直下にファイルを解凍
例:C:\Windows7 (64)\gradle-2.0

2.eclipseのgradleプラグインをインストール
「Eclipse Marketplace」->Find->gradle->install

3.eclipseが再起動して、gradleプラグインのhomeディレクトリを設定
「reference」->「Gradle EnIDE」->「Gradle home to use」->C:\Windows7 (64)\gradle-2.0

4.ローカル環境変数を設定
変数     値
GRADLE_HOME C:\Windows7 (64)\gradle-2.0
Path      %GRADLE_HOME%\bin,

5.「コマンド プロンプト」でgradleを入力してインストール成功かどうか
C:\Users\tom>gradle
:help
Welcome to Gradele 2.0
To run a build run gradle <task>…
To see a list of avaiable tasks .run gradle tasks
….
BUILD SUCCESSFUL

「Java入門」サーバー側Java NIO socketのサンプルプログラム

Javaコード:
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Set;

public class HTTPSocket {

public static void main(String[] args) throws IOException {

Selector selector=Selector.open(); //セレクターをオープン

//サービスリッスンチャネルをオープン
ServerSocketChannel serverSocketChannel=ServerSocketChannel.open();

//ノンプロキングに設定
serverSocketChannel.configureBlocking(false);

//リスナーチャネルがセレクタを受け入れるようにマークを登録
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);

serverSocketChannel.socket().bind(new InetSocketAddress(8080));

SocketChannel channel=null;

boolean b=true;//書き込むことをマーク

StringBuffer buffer=new StringBuffer();

while(true){

selector.select();//最少一つのキー

Set<SelectionKey> selectionKeys=selector.selectedKeys();//キーを取得

for(SelectionKey selectionKey:selectionKeys){

if(selectionKey.isAcceptable()){

channel=serverSocketChannel.accept();

channel.configureBlocking(false);

channel.register(selector, SelectionKey.OP_READ);

selectionKeys.remove(selectionKey);

}else{

if(selectionKey.isReadable()){//読む可能

ByteBuffer bytebuffer=ByteBuffer.allocate(1);
channel.read(bytebuffer);
bytebuffer.position(0);

char c=(char)bytebuffer.get();
buffer.append(c);

if(c==’\n’){

System.out.println(buffer);
b=true;
if(!selectionKey.isWritable())
channel.register(selector, SelectionKey.OP_WRITE);
buffer=new StringBuffer();
}

}
else if(selectionKey.isWritable()){//書く可能

if(b){
ByteBuffer bytebuff=ByteBuffer.wrap(“こんにちは\n”.getBytes());
bytebuff.position(0);
channel.write(bytebuff);
b=false;
if(!selectionKey.isReadable())
channel.register(selector, SelectionKey.OP_READ);
}

}

}

}

}

}
}

Javaで配列から要素を検索するプログラム

package ArrayDemo;

/**
* Arrayクラスを実現
* @author anan
*/
import java.io.*;
import java.util.Scanner;

/*
* Arrayクラス
*/
class Array {
int[] array = new int[10];
int i;

public void search(int[] array, int searchKey) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + ” “);
}
System.out.println();
for (i = 0; i < array.length; i++) {
if (array[i] == searchKey) {
System.out.println(i + ” ” + array[i]);
break;
}
}
System.out.println(i + ” ” + array.length);
// 検索条件
if (i == array.length)
System.out.println(“key not found”);
else
System.out.println(“found the key ” + searchKey + ” at No. ”
+ (i + 1) + “element in the array”);
}
};

/*
* ArrayDemoクラス
*/
public class ArrayDemo {

public static void main(String args[]) throws IOException {
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = i;
}
boolean flag = false;
// ループでプログラムを制御
do {
System.out.println(検索したいキーを入力—>”);
Scanner sc = new Scanner(System.in);
// int型を入力
int searchKey = sc.nextInt();
Array a = new Array();
a.search(array, searchKey);
System.out
.println(“do you want to play again? Input ‘y’ or ‘Y’ to continue”);
char c = 0;
try {
c = (char) System.in.read();
} catch (IOException e) {
e.printStackTrace();
}

// プログラムを続行するかどうかを決定
if ((c == ‘y’) || (c == ‘Y’)) {
flag = true;
} else {
flag = false;
sc.close();
break;
}
} while (flag == true);
}
};