gpt4 book ai didi

java - Java中如何打印String的中间三个字符?

转载 作者:行者123 更新时间:2023-11-29 09:59:42 25 4
gpt4 key购买 nike

我是编程和处理 Java String 赋值的新手。问题是:

  1. 声明一个名为 middle3 的 String 类型的变量(将您的声明与其他声明放在程序顶部附近)并使用赋值语句和 thesubstring 方法将由 phrase 中间三个字符组成的子字符串赋给 middle3(字符在中间索引以及左边的字符和右边的字符)。添加 println 语句以打印出结果。保存、编译并运行以测试您到目前为止所做的工作。

这是我所做的:

String phrase = new String ("This is a String test.");
String middle3 = new String ("tri"); //I want to print the middle 3 characters in "phrase" which I think is "tri".

middle3 = phrase.substring (9, 11); // this only prints out 1 letter instead of 3


System.out.println ("middle3: " + middle3);

这是我的输出:

Original phrase: This is a String test.
Length of the phrase: 18 characters
middle3: S

我也认为字符串“phrase”中有 18 个字符,但如果没有,请告诉我。预先感谢您的所有帮助!

最佳答案

想想如何在不对 substring() 方法的边界进行硬编码的情况下检索中间的 3 个字符。您可以在这方面使用 length() 方法。例如,奇数长度的字符串的中间字符将始终位于索引 str.length()/2,而偶数长度的字符串的两个中间字符将始终位于索引 str.length()/2(str.length()/2) - 1。因此,三个中间字符的定义将由您决定。但为了我们的利益,我们将只在索引 (str.length()/2)-1, str.length()/2,和 (str.length()/2)+1。有了这些信息,你就可以修改你之前的这行代码了,

middle3 = phrase.substring (9, 11);

middle3 = phrase.substring (phrase.length()/2 - 1, phrase.length()/2 + 2);

至于你原来的那行代码为什么只返回一个字母,跟substring方法的参数有关。第一个参数是包容性的,但第二个参数不是。因此,您只检索了从 9 到 10 的字符。

This is a String test.
^^^
9,10,11 (11 is not included)

我指向的三个字符分别位于索引 9、10 和 11。您只检索到字符“”和“S”,它们加起来就是“S”。这解释了之前的一个字母输出。

关于java - Java中如何打印String的中间三个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39692076/

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