2017-01-10 64 views
-2

我想知道是否可以使用返回方法和參數傳遞來在java中進行數組處理。很顯然,我沒有遵循正確的步驟。我不確定這是否可行。如何使用返回方法,參數以java中的數組傳遞

我的代碼的目的是要求用戶輸入特定數量的字母。用戶將輸入數據,並將其翻譯成英文。問題是,如果可能的話,我希望使用返回方法進行處理。

謝謝!我非常感謝所有幫助

import java.io.*; 
import java.awt.*; //gives access to java command libraries 
import hsa.*; //gives access to console class file 
import javax.swing.JOptionPane; 
import java.awt.image.BufferedImage; 
import javax.imageio.ImageIO; 


public class work 
{ 
    Console c; //The output console 

    int numberOfLetters = 0; 
    String[] userInput = new String [numberOfLetters]; 
    String[] translatedData; 
    String english[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; 
    String morse[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "/", "-----", ".----", "..---", "...--", "....-", ".....", " -....", "--...", "---..", "----."}; 


    //It is the class constructor of a java program 
    public work() 
    { 
     c = new Console (""); //creates a new console object window 
    } 


    public void morseFile() 
    { 
     title(); 
     c.print ("Please enter the number of letters you wish to enter: "); 
     numberOfLetters = c.readInt(); 
     userInput = new String [numberOfLetters]; 
     translatedData = new String [numberOfLetters]; 
     c.println (""); 
     c.println ("Please enter the morse data you wish to translate "); 

     int line = 0; 

     do 
     { 
      c.print ("Enter morse letter " + (line + 1) + ": "); 
      userInput [line] = c.readString(); 
      line++; 
     } 
     while (line < numberOfLetters) 
      ; 

     for (int i = 0 ; i < userInput.length ; i++) 
     { 
      if (!(userInput [i].equals ("/") || userInput [i].equals (".-") || userInput [i].equals ("-...") || userInput [i].equals ("-.-.") || userInput [i].equals ("-..") || userInput [i].equals (".") || userInput [i].equals ("..-.") || userInput [i].equals ("--.") || userInput [i].equals ("....") || userInput [i].equals ("..") || userInput [i].equals (".---") || userInput [i].equals ("-.-") || userInput [i].equals (".-..") || userInput [i].equals ("--") || userInput [i].equals ("-.") || userInput [i].equals ("---") || userInput [i].equals (".--.") || userInput [i].equals ("--.-") || userInput [i].equals (".-.") || userInput [i].equals ("...") || userInput [i].equals ("-") || userInput [i].equals ("..-") || userInput [i].equals ("...-") || userInput [i].equals (".--") || userInput [i].equals ("-..-") || userInput [i].equals ("-.--") || userInput [i].equals ("--..") || userInput [i].equals (".----") || userInput [i].equals ("..---") || userInput [i].equals ("...--") || userInput [i].equals ("....-") || userInput [i].equals (".....") || userInput [i].equals ("-....") || userInput [i].equals ("--...") || userInput [i].equals ("---..") || userInput [i].equals ("----.") || userInput [i].equals ("-----") || userInput [i].equals ("/"))) 
      { 
       JOptionPane.showMessageDialog (null, "Please enter the right input"); 
       morseFile(); 
      } 
     } 

     c.println (""); 
     c.print ("The translated data is: "); 
     c.println (""); 
    } 


    private String translated (String[] translatedData) 
    { 
     translatedData = new String [numberOfLetters]; 
     c.print ("THE NUMBER OF LETTERS IS: " + numberOfLetters); 
     for (int i = 0 ; i < userInput.length ; i++) 
     { 
      if (userInput [i].equals ("a") || userInput [i].equals ("b") || userInput [i].equals ("c") || userInput [i].equals ("d") || userInput [i].equals ("e") || userInput [i].equals ("f") || userInput [i].equals ("g") || userInput [i].equals ("h") || userInput [i].equals ("i") || userInput [i].equals ("j") || userInput [i].equals ("k") || userInput [i].equals ("l") || userInput [i].equals ("m") || userInput [i].equals ("n") || userInput [i].equals ("o") || userInput [i].equals ("p") || userInput [i].equals ("q") || userInput [i].equals ("r") || userInput [i].equals ("s") || userInput [i].equals ("t") || userInput [i].equals ("u") || userInput [i].equals ("v") || userInput [i].equals ("w") || userInput [i].equals ("x") || userInput [i].equals ("y") || userInput [i].equals ("z") || userInput [i].equals ("0") || userInput [i].equals ("1") || userInput [i].equals ("2") || userInput [i].equals ("3") || userInput [i].equals ("4") || userInput [i].equals ("5") || userInput [i].equals ("6") || userInput [i].equals ("7") || userInput [i].equals ("8") || userInput [i].equals ("9") || userInput [i].equals ("/")) 
      { 
       for (int z = 0 ; z < english.length ; z++) 
       { 
        if (userInput [i].equals (english [z])) 
        { 
         translatedData [i] = morse [z]; 
         return translatedData [i]; 
        } 

       } 
      } 
      else if (userInput [i].equals (".-") || userInput [i].equals ("-...") || userInput [i].equals ("-.-.") || userInput [i].equals ("-..") || userInput [i].equals (".") || userInput [i].equals ("..-.") || userInput [i].equals ("--.") || userInput [i].equals ("....") || userInput [i].equals ("..") || userInput [i].equals (".---") || userInput [i].equals ("-.-") || userInput [i].equals (".-..") || userInput [i].equals ("--") || userInput [i].equals ("-.") || userInput [i].equals ("---") || userInput [i].equals (".--.") || userInput [i].equals ("--.-") || userInput [i].equals (".-.") || userInput [i].equals ("...") || userInput [i].equals ("-") || userInput [i].equals ("..-") || userInput [i].equals ("...-") || userInput [i].equals (".--") || userInput [i].equals ("-..-") || userInput [i].equals ("-.--") || userInput [i].equals ("--..") || userInput [i].equals (".----") || userInput [i].equals ("..---") || userInput [i].equals ("...--") || userInput [i].equals ("....-") || userInput [i].equals (".....") || userInput [i].equals ("-....") || userInput [i].equals ("--...") || userInput [i].equals ("---..") || userInput [i].equals ("----.") || userInput [i].equals ("-----") || userInput [i].equals ("/")) 
      { 

       for (int z = 0 ; z < morse.length ; z++) 
       { 
        if (userInput [i].equals (morse [z])) 
        { 

         translatedData [i] = (english [z]); 
         return translatedData [i]; 
        } 

       } 

      } 
     } 
    } 

    public void display() 
    { 
     c.print ("The translated data is: " + translated (translatedData)); 
    } 


    public static void main (String[] args) 
    { 
     work h = new work(); 
     h.morseFile(); 
     h.display(); 

    } 
} 
+0

'return method'是什麼意思? – alayor

+0

在java中使用返回值返回特定值 – Mike

+0

您在'translated()'中使用返回值。你的問題是什麼? – shmosel

回答

0

返回一個數組聲明和編碼這樣的,與任何你真正想要做的調整的方法(這必須是一個類中,當然,存在作爲Java中的自由浮動的方法,沒有這樣的東西):

public String[] getNames() 
{ 
    String[] names = { "Alfred", "Willy", "Teddy", "Fred" }; 
    return names; 
} 

那些是要領 - 的方法必須被聲明爲返回一個特定類型的數組(INT,字符串,一個你自己的創作類,都是合法的)。你聲明瞭一個正確類型的變量(在這種情況下是String的數組),並返回它應該有的數據。

爲了使用這種方法,那麼不同的方法將需要包含此方法的任何類的實例;稱之爲類NameGenerator:

NameGenerator ng = new NameGenerator(); 
// ... 
String[] generatedNames = ng.getNames(); 

再次,這必須是一個類中,並在該類中的方法內。

請注意,使用該方法時不需要聲明特定數量的元素;如果使用將數組放入數組中的「初始化器」形式,則不需要在那裏聲明特定數量的元素。

那是你以後的樣子嗎?

+0

感謝您的迴應。不幸的是,這不是我所追求的。如果你看看我的代碼,我的主要問題是return convertedData [i],並且我想問一下如何能夠**在代碼中返回translatedData [i] **。我欣賞幫助。 – Mike

+0

我認爲這裏的一部分困惑是你的代碼*已經*返回'convertedData [i]',並且語法上正確。該方法被聲明爲返回一個String,'convertedData'被聲明爲一個字符串數組,並且您有一個返回語句,它將返回一個字符串到數組中。我收集該數組中的每個字符串是一個字母。所以我們試圖幫助的人不知道你在做什麼。我們不知道錯誤是什麼;將其複製並放入問題中(不要用不同的詞語告訴我們它是什麼)。 – arcy

+0

對不對,因爲不清楚。 **錯誤:帶表達式的return語句必須包含在聲明爲返回值**的方法聲明中。問題:我相信我已經輸入了一切在句法上正確的,然後爲什麼我收到這個問題? – Mike

相關問題