2013-06-23 91 views
0

我想將2個字符串str1,str2的值分別存儲到第3個字符串strContainer(不使用庫方法)中。字符串連接爲字符數組(無庫方法)

我的算法是:
1分別轉換str1和STR2成字符數組charArray1和charArray2。
2.計數計數器變量中兩個字符數組長度的總和(長度爲charArray和charArray2的總和)
3.兩個字符數組(和計數器)的和等於新的char數組charContainer。
4.迭代循環如下
charContainer [第i個索引] + = charArray1 [第i個索引];

charContainer [第i個索引] + = charArray2 [第i個索引];
5.將charContainer轉換爲字符串並顯示爲strContainer。


到目前爲止我的代碼:

public class StringConcat{ 
    int counter; // counting the length of char arrays 
    String str1 = "FirstString"; 
    String str2 = "SecondString"; 

    //for counting the length of both char arrays 
    public int countingLength(String str){ 
    char[] strToCharArray = str.toCharArray(); 
    for(char temp : strToCharArray){ 
    counter++; 
    }  
    } 

//converting string into char array 
char[] charArray1 = str1.tocharArray(); 
char[] charArray2 = str1.tocharArray(); 

//stores both char array 
char[] charContainer=new char[counter];//how to take counter as an index value here 

    //for storing charArray1 into charContainer 
    for(int i=0; i<charContainer.length; i++) { 

     if(charArray1 != null){ 
     charContainer[i] += charArray1[i]; 
     } else 
     return charArray2; 
    } 

    //for storing charArray2 into charContainer 
    for(int i=0; i<charContainer.length; i++) { 

     if(charArray2 != null){ 
     charContainer[i] += charArray1[i]; 
     } else 
     return charArray1; 
    } 

    //converting charContainer char array into string strContainer. 
    String strContainer = new String(charContainer); 
    //alternative : String strContainer = String.valueOf(charContainer); 

public static void main(String args[]){ 

    /*Here i can call (As i'm not sure) 
    StringConcat obj1 = new StringConcat(); 
     obj1.countingLength(str1); 

    StringConcat obj2 = new StringConcat(); 
     obj2.countingLength(str2);   
    */ 
    System.out.println("String Container : " +strContainer); 
} 

}//end of the class 

問題:
如何調用countingLength兩個字符串str1和str2的()方法?
如何將charContainer的索引值分配爲counter(兩個char數組的總和)?

回答

3

如何調用StringLengthCounter()方法?我看不到任何名稱的方法..我很抱歉,但這不是問題在這裏,問題是,這甚至不是有效的代碼。

我並不是說要苛刻,但是周圍有sintax錯誤,程序邏輯在很多方面都是錯誤的。

請看看下面的代碼,並試圖弄清楚它是如何工作的,我認爲它是做你想做的。 如果有什麼不清楚的地方就問。

public class StringConcat{ 
    public static String strcat(String str1, String str2){ 
     //converting string into char array 
     char[] charArray1 = str1.toCharArray(); 
     char[] charArray2 = str2.toCharArray(); 

     int counter=charArray1.length+charArray2.length; 

     //stores both char array 
     char[] charContainer=new char[counter]; 

     //for storing charArray1 into charContainer 
     int i=0; 
     for(; i<charArray1.length; i++) { 
      charContainer[i]=charArray1[i]; 
     } 
     //for storing charArray2 into charContainer 
     for(int j=0; i<counter; j++,i++) { 
      charContainer[i]=charArray2[j]; 
     } 
     //converting charContainer char array into string 
     return new String(charContainer); 
    } 
    public static void main(String args[]){ 
     String str1 = "FirstString"; 
     String str2 = "SecondString"; 
     String strContainer = strcat(str1,str2); 
     System.out.println("String Container : " +strContainer); 
    } 
}//end of the class 
+0

感謝。你的努力是可觀的。我想用一些小字符串程序讓我的手變髒,我用char數組操作。所以我會很好地理解字符串。讓我知道如果你有任何鏈接或教程在線誰教小字符串程序。 @Marco Martinelli –

+0

您可以從oracle的java教程開始。 http://docs.oracle.com/javase/tutorial/java/data/strings.html我希望這有幫助 –

0
import java.io.*; 
class Concatenation 
{ 
    public static void main(String []args) throws IOException 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     int i=0; 
     String s1,s2; 
     System.out.print("Enter the first string:"); 
     s1=br.readLine(); 
     System.out.print("Enter the Second string:"); 
     s2=br.readLine(); 
     char s3[]=new char[s1.length()+s2.length()]; 
     for(;i<s1.length();i++) 
      s3[i]=s1.charAt(i); 
     for(int j=0;j<s2.length();j++) 
      s3[i++]=s2.charAt(j); 
     System.out.println("Result:"+new String(s3)); 
    } 
} 
0
public class Conc { 
    String s1="java",s2="programming",s3=""; 
    int l=s1.length(),m=s2.length(),i,j; 
    public String conca(String s1,String s2){ 
     for(i=0;i<=l-1;i++){ 
      s3+=s1.charAt(i); 
     } 
     for(j=0;j<=m-1;j++){ 
      s3+=s2.charAt(j); 
     } 
     System.out.println(s3); 
return s3; 
    } 
    public static void main(String[] args) { 

     Conc obj1=new Conc(); 
     obj1.conca("java","programming"); 

} 
} 
+1

添加一些解釋! – gaRos

0
public class StringConcatination { 

    public static String concate(String s1,String s2){ 
     String s3=""; 
     for(int i=0;i<s1.length();i++){ 
      s3+=s1.charAt(i); 
     } 
     for(int j=0;j<s2.length();j++){ 
      s3+=s2.charAt(j); 
     } 

     return s3; 
    } 

    public static void main(String[] args) { 
     System.out.println(concate("java","programming")); 
    }  
}