class kamoku{
private int sannsuu;//フィールド
private int taiku;
}
void set(int s,int t){
}//メソッド
public static void main(String args[]){
}//メソッド
args[]に2個数字を入力してvoid set(int s,int t)のメソッドで、sを算数にtを体育に
代入したいのですが、どういうふうにすといいでしょうか?教えてください。
なんか質問のプログラム{}の位置が変な気がしますが…。
class kamoku{
private int sannsuu;//フィールド
private int taiku;
void set(int s,int t){
sansuu = s;
taiku = t;
}//メソッド
public static void main(String args[]){
int s = int.Parse(args[0]);
int t = int.Parse(args[0]);
set(s, t);
}//メソッド
}
かな。Javaのブランク長いんで確認してみてください。
http://www.atmarkit.co.jp/fdotnet/dotnettips/001atoi/atoi.html
文字列を数値に変換するには?[C#、VB] − @IT
http://java.sun.com/j2se/1.4.2/docs/api/
Java 2 Platform SE v1.4.2
最近Javaでプログラム書いてないので、間違ってたら申し訳です。
void set(int s,int t){
sannsuu = s;
taiku = t;
}
これはOKですよね?
public static void main(String args[]){
set(Integer.parseInt(args[0]),Integer.parseInt(args[1]));
}
JDKインストールするの面倒なので試してはいません。
http://www.hatena.ne.jp/1110098813#
人力検索はてな - java で質問です。 class kamoku{ private int sannsuu;//フィールド private int taiku; } void set(int s,int t){ }//メソッド public static void main(String args[])..
少し変更しましたが、以下をMain.javaで保存し、コンパイルすると出来ます。確認済みです。
例)
C:¥WORK>javac Main.java
C:¥WORK>java Main 2 3
sannsuu: 2
taiku: 3
----------
class kamoku {
private int sannsuu;//フィールド
private int taiku;
public void set(int s,int t){
sannsuu=s;
taiku=t;
}//メソッド
public void display(){
System.out.println(”sannsuu: ”+sannsuu);
System.out.println(”taiku: ”+taiku);
}
}
class Main{
public static void main(String args[]){
String sannsuu = args[0];
String taiku = args[1];
int s = Integer.parseInt(args[0]);
int t = Integer.parseInt(args[1]);
kamoku k = new kamoku();
k.set(s,t);
k.display();
}
}
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/Intege...
Java 2 Platform SE 1.3: $B%/%i%9(B Integer
まず、回答者1のようにJavaの書き方が間違ってましたね。
そこはいいとして、
java kamoku 1 2
と言う風に実行するということですよね?
ですが、argsは文字列なので数値(int)に変換しなければ行けないことは分かると思います。
そこで用いるのが
Integer.parseInt(String)
です。
で、これを用いて mainメソッドを
public static void main(String args[])
{
try {
int arg1 = Integer.parseInt(args[0]);
int arg2 = Integer.parseInt(args[1]);
set(arg1, arg2);
} catch (Exception e) {
e.printStackTrace();
}
}
とすればいいでしょう。
ここで
e.printStackTrace();
は、文字列が数値に変換できなかった場合の
エラー内容を出力されるためのものです。
追伸、勉強しているうちはいろいろ分からないことも出るかと思いますが、自分で調べられるようにしましょうね。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Intege...
Integer (Java 2 $B%W%i%C%H%U%)!<%`(J SE v1.4.0)
URLはIntegerクラスの概要です。
setの方は他の方が書かれているままなので省略しますが、mainは
public static void main(String args[]){
int i = 0;
int s = Integer.parseInt(args[i++]);
int t = Integer.parseInt(args[i++]);
set(s, t);
}
と、した方が配列の要素の増減にも強くデバッグも容易になりお勧めです。
おそらく、質問としての肝はStringのintへの変換だったのだと思うのですが、
IntegerクラスのparseIntメソッドで行えます。
ありがとうございました。
ありがとうございました。