本文介绍一种不依赖数组的纯字符串操作方法,用于在用户输入的句子中查找指定长度的第一个回文子串,并返回该回文;若不存在则返回空字符串。
在实际开发中,我们常需从一段文本中提取满足特定条件的子串,例如:给定一个字符串和目标长度 size,找出其中首个长度恰好为 size 的回文子串。注意,题目明确要求不使用数组(即避免 char[] 显式拆分),因此应优先利用 Java 内置的字符串方法(如 substring()、StringBuilder.reverse())完成逻辑。
以下是一个简洁、健壮且符合约束的实现:
public String printPalindrome(String sentence, int size) {
// 边界校验:负长度无意义,直接返回空
if (size < 0) return "";
// 若请求长度超过原字符串,自动截断为最大可行长度
if (size > sentence.length()) size = sentence.length();
// 滑动窗口遍历所有长度为 size 的连续子串
for (int i = 0; i + size <= sentence.length(); i++) {
String miniStr = sentence.substring
(i, i + size);
String reverseStr = new StringBuilder(miniStr).reverse().toString();
// 判断是否为回文(区分大小写;如需忽略大小写,可统一转小写再比较)
if (miniStr.equals(reverseStr)) {
return miniStr;
}
}
// 未找到符合条件的回文,返回空字符串
return "";
}✅ 关键设计说明:
if (miniStr.equalsIgnoreCase(reverseStr))
⚠️ 注意事项:
综上,该方案以最少的内置工具、清晰的逻辑流和严谨的边界处理,精准满足“不使用数组、按指定长度提取首个回文子串”的要求,适用于教学及轻量级文本处理场景。