2017-01-10 3 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? – alayor

+0

использовать метод return в java для возврата определенного значения – Mike

+0

Вы используете возвращаемые значения в 'transl()'. Какой у Вас вопрос? – 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 translationData [i], и я хотел бы спросить, как я смогу ** возвращать переведенные данные [i] ** в код. Однако я ценю помощь. – Mike

+0

Я думаю, что часть путаницы здесь заключается в том, что ваш код * уже * возвращает 'translData [i]' и синтаксически делает это правильно. Метод объявлен как возвращающий String, 'translData' объявлен как массив строки, и у вас есть оператор return, который возвращает одну строку из массива. Я собираю каждую строку в этом массиве - это одна буква. Поэтому мы, которые пытаются помочь, не знают, что вам нужно. Мы не знаем, что такое ошибка; скопируйте его и поставьте в вопрос (не говорите нам, что это за разные слова). – arcy

+0

правый, извините за непонятность. ** Ошибка: оператор return с выражением должен содержаться в объявлении метода, объявленном для возврата значения **. Вопрос: Я считаю, что я ввел все синтаксически правильно, и почему я получаю эту проблему? – Mike

Смежные вопросы