2017-01-26 3 views
-1

現在、2つのクラス、1つのクラスはメインメソッド、もう1つは文字列です。メインから返された変数を持つ呼び出しメソッド

主なメソッドは次のとおりです。getStringメソッドを呼び出そうとしています。getStringは、ユーザー入力とストリングとしてのストリングだけを受け取ります。 getStringを実行した後、短いアルゴリズムを使用して文字列を逆順に返して戻すgetReverseも実行するとします。文字列の

public class main { 

public static void main(String[] args) 
{ 
    ReverseString test1 = new ReverseString(); 
    test1.getString(); 
    test1.getReverse(inputString); 
} 

クラス:

public class ReverseString { 

public ReverseString() 
{ 

} 

public String getString() 
{ 
    String inputString = ""; 
    Scanner keyboard = new Scanner(System.in); 
    System.out.print("Please enter string: "); 
    inputString = keyboard.nextLine(); 
    return inputString; 
} 

public String getReverse(String inputString) 
{ 
    String temp = ""; 
    for(int i = inputString.length(); i >= 0; i--) 
    { 
     temp = temp + inputString.charAt(i); 
    } 
    System.out.println(temp); 
    return temp; 

} 

プログラムが正しく文字列を受け取りますが、最初のメソッドが呼び出された後、第2の方法を実行しません。

+1

変数、関数などの基本的なプログラミングのことを学ぶことから始めます。 – Andremoniy

+0

それ以外にも、inputStringがメソッドmainで認識されていないため、コンパイルされないという問題があります。 String#lengthは長さを与え、String#charAtは0を基にしたインデックスに作用するので、IndexOutOfBoundsを返します。 – Redlab

+0

@RedlabはinputStringがクラスではなくmainで定義されているとうまくいくでしょうか? – Pengoid

答えて

2
public static void main(String[] args) 
{ 
    ReverseString test1 = new ReverseString(); 
    String inputString = test1.getString(); 
    inputString = test1.getReverse(inputString); 
} 

でも、リファクタリングを行う必要があります。 常に大文字のクラス名を開始します。

関連する問題