本文介绍一种不依赖数组的纯字符串操作方法,用于在用户输入的句子中查找首个指定长度的回文子串,并返回该子串;若不存在则返回空字符串,同时自动处理长度越界等边界情况。
在实际开发中,我们常需从一段文本中提取满足特定条件的子串——例如,找出长度恰好为 n 的回文单词。题目明确要求不使用数组(即避免 char[]、ArrayList 等显式数组结构),因此应优先利用 Java 内置的字符串操作方法(如 substring()、StringBuilder.reverse())来实现逻辑。
核心思路是:遍历原字符串中所有长度为 size 的连续子串,对每个子串生成其反转字符串,并直接比较是否相等(注意:回文判定无需区分大小写时可统一转小写,但本题示例未强制要求,故保持原大小写敏感以提升效率;如需忽略大小写,可在比较前调用 .toLowerCase())。
以下是完整、健壮的实现:
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 "";
}✅ 关键设计说明:
ring(i, i + size) 安全提取子串,配合 i + size ⚠️ 注意事项:
综上,该方案以最小语言特性依赖实现了清晰、安全、可读性强的回文子串提取逻辑,是面向基础字符串操作的典型教程级实践。