2014-02-23 246 views
0

我不知道如何讓程序明白文本文件中有三個不同的字符串,我如何將它添加到我的代碼中?我從來沒有建立,雖然我相當與創建有趣的Java程序(如計算器和等)之前經歷了一個數組,並要移動到下一個步驟創建一個Java字符串數組

我做了一個程序,執行以下操作:

  • 程序功能: 要求用戶輸入一個字符串。 要求用戶輸入第二個字符串,它將替換第一個字符串中每個單詞的最後兩個字符。 要求用戶輸入第三個字符串,第一個字符將替換第一個字符串中每個字的每個字母「I」。 *如果第一個字符串中的單詞少於兩個字符,並且不包含I,則字符串將保留單獨。

這裏是工作的代碼(我準備與運行計劃 - 不知道爲什麼第一位沒有在代碼中包含了):

import java.io.*; 
import java.util.*; 


public class StringModifications 

{ 

private String input1, input2, input3; // Values only used within this method 
    public String information; 

    // Constructor 
    public StringModifications() 
    { 
     // Initialize class data to 0 
     this.input1 = ""; 
     this.input2 = ""; 
     this.input3 = ""; 
    } 

    public void setInputStrings (String s1, String s2, String s3) 
    { 
     // Method to set class data 
     this.input1 = s1; // Equal to string 1 
     this.input2 = s2; 
     this.input3 = s3; 
    } 

    public String processStrings() 
    { 
     StringTokenizer stok = new StringTokenizer (this.input1); // Splits first input string (word by word) 
     StringBuffer strBuff = new StringBuffer (""); 

     String outstring = ""; // Initialize variable to 0 

     while (stok.hasMoreTokens() == true) // As long as there are more words in the string: 
     { 
      String word = stok.nextToken(); 
      if (word.length() > 2) 
      { 

       word = word.substring (0, word.length() - 2); // Removes the last two letters of each word in the first string 
       word = word.concat (this.input2); // Adds the second input to the end of the first string 

       char letter = input3.charAt (0); // Finds the first letter of the third input 
       word = word.replace ('I', letter); // Replaces letter I in first string with first letter of third input 
      } 


      outstring = outstring + word + " "; // Adds a space between each word when output 
     } 

     return outstring; 
    } 


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

     String string1, string2, string3; 

     BufferedReader keyboard = new BufferedReader ( // // Define the input stream reader 
       new InputStreamReader (System.in)); 

     System.out.println ("Enter first string"); // User inputs the first string 
     string1 = keyboard.readLine(); 

     System.out.println ("Enter second string"); // User inputs the econd string 
     string2 = keyboard.readLine(); 

     System.out.println ("Enter third string"); // User inputs the third string 
     string3 = keyboard.readLine(); 

     StringModifications strProc = new StringModifications(); 

     strProc.setInputStrings (string1, string2, string3); // Sends values to method (e.g. this.input1 = stirng 1) 

     PersonalInfo pi = new PersonalInfo(); 

     String out = strProc.processStrings(); // String (e.g. this.input1) sent through processStrings method before output 

     System.out.println ("Original Input: " + string1); // Displays the original input 
     System.out.println ("Modified Input: " + out); // Displays the modified input 
    } 
} 

和我所試圖做的是創建一個數組,它需要三個輸入(字符串,這將是代碼中的字符串1,2和3),如下文所示:您好,您好嗎(字符串1) 我很好(字符串2) 很棒(stirng 3)

我不知道如何讓程序明白文本文件中有三個不同的字符串,並且如何將它添加到我的代碼中?我從來沒有建立,雖然我相當與創建有趣的Java程序(如計算器和等)經驗豐富,要移動到下一個步驟

回答

0

您使用String[] str = new String[n]聲明和初始化一個新的String陣列之前的數組。這是一個固定長度爲n的靜態數組,其中n必須在初始化過程中知道。通過str[i]訪問各個元素,其中i是來自區間[ 0,n)的元素索引。用法

例子:

String[] phrases = new String[3]; 
phrases[0] = "Hello, how are you?"; 
phrases[1] = "I am good"; 
phrases[2] = "Great"; 

System.out.println("What phrase would you wish to see?"); 
Scanner in = new Scanner(System.in); 
System.out.println(phrases[in.nextInt()]); 
in.close(); 

如果你需要的元素的可變數量動態數組,我會建議尋找到ArrayList類。

+0

也許增加一個他們的用法的例子。如果我是新人,你的解釋對我來說沒有多大意義。 – christopher

相關問題