web-dev-qa-db-ja.com

文字列を2つに分割する

メッセージを隠すための新しい変換ソフトウェアを作成しています(楽しみのために)。私はBinaryおよびDecimal変換クラスを作成しましたが、私の考えは、ユーザーが文字列を入力すると、すべてBinary形式に変換されます。次に、それを半分に分割し、半分を10進数に変換してから、文字列を再び加算して、2進数と10進数の混合にします。他のバージョンでは、変換、分割を追加し、言語に変換することもできます。文字列を半分に分割する必要があります。これはこれまでのところ私のコードです::

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.

    }
}
8
user5305868
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
12
karim mohsen

Javaの部分文字列関数を使用して、それらを半分に分割できます。

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

これを試して:

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

substring() メソッドを使用します。長さが奇数のStringの場合、後半は1文字長くなります。

0
bcsb1001

私はこれがあなたが達成したいことをやり遂げると思います:

追伸文字数が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
burglarhobbit