将一个字符串分成两半

时间:2015-09-06 12:04:41

标签: java arrays string split binary

我正在制作一个新的转换软件来隐藏消息(为了好玩)。我做了一个二进制和十进制转换类,我的想法是,用户输入字符串,它将所有转换为二进制格式。然后将它分成两半,将一半转换为十进制,然后再将字符串重新添加到一起,使其成为二进制和十进制的混合。在其他版本中,我将添加更多转换,更多分割,也可能转换为语言。我需要将字符串分成两半。到目前为止这是我的代码::

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 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:0)

我想这会让你完成你想要达到的目标:

P.S。请注意,对于具有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);

答案 2 :(得分:0)

您可以使用Java的子字符串函数将它们分成两半:

function Protocol( url )
    {

        if (url !== "") 
        {


            if ( !url.match("^(http|https|ftp|sftp|ssh|smtp)://") ) 
            {
                url = "http://" + url;
            }
        }
        return url;
    }

答案 3 :(得分:0)

试试这个:

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

这使用substring()方法。如果String具有奇数长度,则后半部分将长一个字符。

答案 4 :(得分:0)

此方法删除具有奇数长度的字符串的中间字符。这由 else 部分后半部分的 2 + 1 完成。

public void method()
{
    Scanner sc = new Scanner(System.in);
    System.out.println("ENTER A STRING");
    original = sc.next();
    
    if(original.length()%2 == 0)
    {
        firsthalf =original.substring(0, original.length()/2);
        secondhalf = original.substring(original.length()/2);
        System.out.println(firsthalf);
        System.out.println(secondhalf);
    }
    else
    {
        firsthalf = original.substring(0, original.length()/2);
        secondhalf = original.substring(original.length()/2+1);
        System.out.println(firsthalf);
        System.out.println(secondhalf);
    }   
}