Что вы делаете, чтобы разделить нечетное число, например 15
с тем же требованием?
Вы сохраняете результат 15 / 2
в переменную int
, скажем
int half = 15 / 2
который дает вам 7
. Согласно вашему требованию, вам нужно добавить 1
к half
, чтобы сделать первую половину (то есть 8
), а оставшаяся половина будет 15 - 8 = 7
.
С другой стороны, в случае, если четного числа, вы просто делите его на 2
, чтобы иметь две половинки.
Вы должны применить тот же лог c в случае String
. Ниже приведено демо:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int half;
String str1 = "Titanic";
half = str1.length() / 2;
String str1Part1 = str1.substring(0, half + 1);
String str1Part2 = str1.substring(half + 1);
System.out.println(str1Part1 + ", " + str1Part2);
String str2 = "HelloWorld";
half = str2.length() / 2;
String str2Part1 = str2.substring(0, half);
String str2Part2 = str2.substring(half);
System.out.println(str2Part1 + ", " + str2Part2);
Scanner in = new Scanner(System.in);
do {
System.out.print("Enter a string: ");
String str = in.nextLine();
half = str.length() / 2;
System.out.println(str.length() % 2 == 1 ? str.substring(0, half + 1) + ", " + str.substring(half + 1)
: str.substring(0, half) + ", " + str.substring(half));
System.out.print("Enter Y to continue or any input to exit: ");
} while (in.nextLine().toUpperCase().equals("Y"));
}
}
Пример прогона:
Tita, nic
Hello, World
Enter a string: Arvind
Arv, ind
Would you like to continue? [Y/N]: y
Enter a string: Kumar
Kum, ar
Would you like to continue? [Y/N]: Y
Enter a string: Avinash
Avin, ash
Would you like to continue? [Y/N]: n
Примечание:
%
является оператором по модулю. - Проверка Подстрока строки (int beginIndex, int endIndex) и Подстрока строки (int beginIndex) , чтобы узнать больше о
substring
функций String
. - Проверьте https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html, чтобы узнать о троичном операторе.
Не стесняйтесь комментировать в случае любых сомнений /issue.