【发布时间】:2020-08-11 02:08:22
【问题描述】:
Java 程序从用户那里获取一个字符串。如果字符串大小是偶数,则反转字符串的第二部分并显示该字符串。如果字符串大小是奇数,则从中间字符反转字符串并显示它。字符串应该只有字母。否则,显示“不是有效字符串”。字符串至少要有两个字母,否则显示“字符串大小太小”。
package Section6;
import java.util.*;
import java.util.regex.Pattern;
public class Challenge6 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the string: ");
String str = sc.nextLine();
if (str.length() == 0 || str.length() <= 1) {
System.out.print("Size of string " + str + " is too low");
return;
}
else if (str.length() == 2 && str.matches("^[a-zA-Z]*$"))
{
if(Pattern.matches("^[a-zA-Z]*$", str))
{
Reverse_string(str);
}
else
{
System.out.print(str + " is not a valid string");
return;
}
}
else if (str.length() > 2)
{
if(str != null && str.matches("^[a-zA-Z]*$")) {
Reverse(str);
}
}
}
public static void Reverse_string(String s) {
String reverse = "";
int length = s.length();
for (int i = length - 1 ; i >= 0 ; i--)
reverse = reverse + s.charAt(i);
System.out.println(reverse);
}
public static void Reverse(String str) {
int mid = str.length() / 2;
String[] parts = { str.substring(0, mid), str.substring(mid) };
String p2 = parts[0]; // first part
String p1 = parts[1]; // second part
String s1a = str.substring(0, (str.length() / 2));
String s1b = str.substring((str.length() / 2));
System.out.print(p2);
int i = s1b.length();
while (i > 0) {
System.out.print(s1b.charAt(i - 1));
i--;
}
}
}
【问题讨论】:
-
您发布了问题描述和代码。那么,你在苦苦挣扎的是什么?你想要什么?
标签: java string pattern-matching reverse