gpt4 book ai didi

java - 如何使用子字符串方法返回奇数字符串的中间 3 个字符?

转载 作者:行者123 更新时间:2023-12-02 10:20:24 25 4
gpt4 key购买 nike

我正在尝试使用子字符串方法返回单词的中间 3 个字符,但是如果单词可以是任意大小(仅限 ODD),如何返回单词的中间 3 个字母?

我的代码如下所示。

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String inputWord;

inputWord = scnr.next();

System.out.println("Enter word: " + inputWord + " Midfix: " + inputWord.substring(2,5));

}
}

我在子字符串方法中有 2 和 5 的原因是因为我用“puzzled”这个词尝试过它,它按照预期返回了中间的三个字母。但如果我尝试,例如“xxxtoyxxx”,它会打印出“xto”而不是“toy”。

附注请不要攻击我,我是编码新手:)

最佳答案

考虑以下代码:

String str = originalString.substring(startingPoint, startingPoint + length)

要确定startingPoint,我们需要找到String的中间,并返回一半的字符数作为我们的length想要检索(在您的情况下为 3):

int startingPoint = (str.length() / 2) - (length / 2);
<小时/>

您甚至可以为此构建一个辅助方法:

private String getMiddleString(String str, int length) {
if (str.length() <= length) {
return str;
}

final int startingPoint = (str.length() / 2) - (length / 2);
return "[" + str.substring(startingPoint, startingPoint + length) + "]";
}
<小时/>

Complete Example:

class Sample {
public static void main(String[] args) {
String text = "car";

System.out.println(getMiddleString(text, 3));
}

private static String getMiddleString(String str, int length) {

// Just return the entire string if the length is greater than or equal to the size of the String
if (str.length() <= length) {
return str;
}

// Determine the starting point of the text. We need first find the midpoint of the String and then go back
// x spaces (which is half of the length we want to get.
final int startingPoint = (str.length() / 2) - (length / 2);
return "[" + str.substring(startingPoint, startingPoint + length) + "]";

}
}

在这里,我将输出放在 [] 括号中以反射(reflect)可能存在的任何空格。上述示例的输出为:[ppl]

使用这种动态方法将允许您在任意长度的字符串上运行相同的方法。例如,如果我们的 text 字符串是“这是一个更长的字符串...”,我们的输出将是:[ lo]

<小时/>

Considerations:

  • 如果输入文本有偶数个字符,但长度是奇数怎么办?您需要确定是否想要向上/向下舍入长度或返回稍微偏离中心的字符集。

关于java - 如何使用子字符串方法返回奇数字符串的中间 3 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com