求助:如何移除5字符String的首尾字符(已实现反转功能)
解决5字符字符串的首尾移除与反转问题
对于5字符的输入字符串,你可以通过两种简洁的方式完成需求——先移除首尾再反转,或者先反转再移除首尾,两种方式最终结果一致。下面是具体实现方案:
方法1:利用字符串截取(最简便)
大多数编程语言都提供了字符串截取的内置方法,以Java为例:
String input = "abcde"; // 示例输入,5个字符 // 先截取中间3个字符(去掉首尾),再反转 String middlePart = input.substring(1, 4); // 5字符的索引是0-4,substring(1,4)取索引1、2、3的字符 String finalResult = new StringBuilder(middlePart).reverse().toString(); // 或者先反转再截取首尾 String reversedStr = new StringBuilder(input).reverse().toString(); String finalResult2 = reversedStr.substring(1, reversedStr.length() - 1);
substring(startIndex, endIndex)是左闭右开的区间,所以1对应原字符串的第二个字符,4对应原字符串第五个字符的索引(不包含),刚好取出中间三个字符。
方法2:字符数组实现(解决你尝试数组未成功的问题)
如果想用数组方式实现,核心是提取中间的字符数组再反转:
String input = "abcde"; char[] charArray = input.toCharArray(); // 提取中间3个字符到新数组 char[] middleArray = new char[3]; System.arraycopy(charArray, 1, middleArray, 0, 3); // 从原数组索引1开始,复制3个元素到新数组 // 反转中间数组 for (int i = 0; i < middleArray.length / 2; i++) { char temp = middleArray[i]; middleArray[i] = middleArray[middleArray.length - 1 - i]; middleArray[middleArray.length - 1 - i] = temp; } String finalResult = new String(middleArray);
这里用System.arraycopy快速提取中间字符,再通过循环完成数组反转,避免手动逐个赋值的麻烦。
内容的提问来源于stack exchange,提问作者Felipe Ramirez
相关产品推荐
相关产品推荐

