[英]Splitting a string into two halfs
I am making a new conversion software to hide messages (for fun).我正在制作一个新的转换软件来隐藏消息(为了好玩)。 I have made a Binary and Decimal conversion class and my idea is, a user inputs string, it converts all to Binary format.
我做了一个二进制和十进制转换类,我的想法是,用户输入字符串,它将所有转换为二进制格式。 Then splits it in half, converts one half to decimal, then adds the string back together again to make it a mix of binary and decimal.
然后将其分成两半,将一半转换为十进制,然后再次将字符串相加,使其成为二进制和十进制的混合。 In other versions I will add more conversions, more splits,and maybe convert to languages too.
在其他版本中,我将添加更多转换、更多拆分,并且也可能转换为语言。 I need splitting the string in half.
我需要将字符串分成两半。 This is my code so far::
到目前为止,这是我的代码::
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.
}
}
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
You can use Java's substring function to divide them in halves:您可以使用 Java 的 substring 函数将它们分成两半:
String s1a = s1.substring(0, (s1.length()/2));
String s1b = s1.substring((s1.length()/2);
I guess this will get you done what you want to achieve:我想这会让你完成你想要实现的目标:
PS Note that for Strings with odd
number of characters, the second-half String will get the benefit of the extra character. PS请注意,对于具有
odd
个字符的字符串,后半字符串将获得额外字符的好处。
Create a method like this:创建一个这样的方法:
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;
}
and in your main
function, call the method as below:在你的
main
函数中,调用如下方法:
String s1a = substring(0, (s1.length()/2), s1);
String s1b = substring((s1.length()/2),s1.length(), s1);
Try this:尝试这个:
int len = whole.length();
String a = whole.substring(0, len / 2), b = whole.substring(len / 2);
This uses the substring()
method.这使用
substring()
方法。 In the case of a String
with odd length, the second half will be one character longer.对于奇数长度的
String
,后半部分将长一个字符。
This method drops the middle character of the Strings having odd lengths.此方法删除具有奇数长度的字符串的中间字符。 This is done by the
2 + 1
in the second half in the else part.这是由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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.