web-dev-qa-db-fra.com

Fractionner une ficelle en deux moitiés

Je suis en train de créer un nouveau logiciel de conversion pour cacher les messages (pour le plaisir). J'ai fait une classe de conversion binaire et décimale et mon idée est, une chaîne d'entrée utilisateur, il convertit tout au format binaire. Le divise ensuite en deux, convertit un demi en décimal, puis rajoute la chaîne pour en faire un mélange binaire et décimal. Dans d'autres versions, j'ajouterai plus de conversions, plus de scissions et peut-être aussi convertir en langues. J'ai besoin de couper la ficelle en deux. C'est mon code jusqu'à présent ::

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.

    }
}
5
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

Vous pouvez utiliser la fonction sous-chaîne de Java pour les diviser en deux:

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

Essaye ça:

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

Ceci utilise la méthode substring() . Dans le cas d'une String de longueur impaire, la seconde moitié comptera un caractère de plus.

0
bcsb1001

Je suppose que cela vous permettra de faire ce que vous voulez réaliser:

P.S. Notez que pour les chaînes avec un nombre odd de caractères, la chaîne de seconde moitié bénéficiera du caractère supplémentaire.

Créez une méthode comme celle-ci:

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;
}

et dans votre fonction main, appelez la méthode comme ci-dessous:

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