2015-09-06 183 views
3

我正在製作一個新的轉換軟件來隱藏消息(爲了好玩)。我做了一個二進制和十進制轉換類,我的想法是,用戶輸入字符串,它將全部轉換爲二進制格式。然後將其分成兩半,將一半轉換爲十進制,然後再次將字符串重新組合爲二進制和十進制的混合。在其他版本中,我會添加更多轉化次數,更多分割次數,也可能會轉換成語言。我需要把弦分成兩半。這是到目前爲止我的代碼::將一個字符串分成兩部分

public ray() { 
    Scanner in = new Scanner(System.in); 

    while (true) { 
     System.out.println("Please input the text you wish to encode!"); 
     System.out.println("Type '#' to quit the Software."); 
     String s1 = in.nextLine(); 
     if ("#".equalsIgnoreCase(s1)) { 
      System.out.println("Goodbye, hope you enjoyed RAYConversion v1.0 Alpha."); 
      // close software 
     } 

     // convert all to binary 
     binary Binary = new binary(); 

     //what i need to do is split stirng s1 in half, make it into different strings. Then I will convert 
     //the two strings to binary and decimal. I made a converter for that. 

    } 
} 
+0

如何將字符串「AAA」分成兩半? – Tunaki

+0

請使用命名約定。一個名爲'ray'的類應該被稱爲'Ray',而'binary Binary'應該是'Binary binary' - 具有一個'Binary'類和一個變量'binary'。另外,考慮到你在一個只有該字符的String上調用equalsIgnoreCase(),什麼是「#」的大小寫? – bcsb1001

+0

我對Java有點新鮮,它適用於我,equalsIgnoreCase可以等於我知道,我習慣於使用Bukkit API大聲笑,在那裏我使用equalsIgnoreCase命令。和AAA,下半場將有AA和第一將有A. – JustRayz

回答

11
final int mid = s1.length()/2; //get the middle of the String 
String[] parts = {s1.substring(0, mid),s1.substring(mid)}; 
System.out.println(parts[0]); //first part 
System.out.println(parts[1]); //second part 
0

我想這將讓你做你想要達到的目標:

附:請注意,對於字符數爲odd的字符串,第二個字符串將獲得額外字符的好處。

創建這樣的方法:

public static String substring(int a, int b, String temp) { 
    String a = ""; 
    for(int i = a; i<b; i++) { 
     char ch1 = temp.charAt(i); 
     a = a + ch1; 
    } 
    return a; 
} 

,並在您main函數,調用該方法如下:

String s1a = substring(0, (s1.length()/2), s1); 
String s1b = substring((s1.length()/2),s1.length(), s1); 
+0

非常有幫助,ty!但是我可能會使用另一個,因爲它更合理,代碼更小。不管怎麼說,還是要謝謝你! – JustRayz

+0

編輯並改進了我的答案。我想這會讓你更容易理解函數中發生的事情。 –

0

您可以使用Java的子功能將其分成兩半分:

String s1a = s1.substring(0, (s1.length()/2)); 
String s1b = s1.substring((s1.length()/2); 
0

試試這個:

int len = whole.length(); 
String a = whole.substring(0, whole.length/2), b = whole.substring(whole.length/2); 

它使用substring()方法。在長度爲奇數的String的情況下,下半部分將長一個字符。