【问题标题】:UpperCase problem, using IndexOf大写问题,使用 IndexOf
【发布时间】:2011-01-31 17:42:49
【问题描述】:

输入一行文字。请不要标点符号。

Java 是语言。

我已将那行改写为:

语言是java。

尝试:

 int x;
 String  sentence, first;

 System.out.println("\nEnter a line of text. No punctuation please.");

 Scanner keyboard = new Scanner (System.in);

 sentence=keyboard.nextLine();

   x = sentence.indexOf(" ");
 first= sentence.substring(0,x);
 second=sentence.substring(0,1)
 second=second.toUpperCase();  
 System.out.println("I have rephrased that line to read:");
 System.out.println(second+sentence.substring(x+1)+" "+first);

输出:

输入一行文字。请不要标点符号。

发生了什么

我已将该行改写为:// 它应该是“正在发生什么”

我们在做什么

P.S - 我需要将字母“i”大写。 如何让“second.substring(0,1)”读取字符“i”? 正如建议的那样,我试图弄清楚剥离字母并将其连接起来 大写,但我不确定。

对于那些抨击我没有自己做这件事的人。我已经多次尝试并通读了这本书。这没有任何帮助。我不得不问教授,所以他给了我一个先机,但仍然不够。无论如何,我想了解它。不是每个人都掌握相同的方法。我个人,需要例子和详尽的解释来理解。

【问题讨论】:

  • 现在他们为什么要布置如此愚蠢的家庭作业?
  • 这是作业吗?我们喜欢标记与家庭作业相关的问题。
  • (这显然是作业。)您已经拥有的代码非常接近。如此接近,如果您了解您拥有的代码,您实际上不需要在这里询问。我的建议是你研究你拥有的代码并理解它。答案本身不会对您有太大帮助。
  • 如果您的问题被正确回答,您应该将其标记为正确答案

标签: java string substring indexof


【解决方案1】:

变化:

   first= sentence.substring(0,4);  

收件人:

   first= sentence.substring(0,x);

然后添加:

   sentence = sentence.substring(x+1,sentence.length());

【讨论】:

    【解决方案2】:

    试试:

    first = sentence.substring (0, x);
    // other stuff
    System.out.println (sentence.substring (x + 1) + " " + first);
    

    【讨论】:

      【解决方案3】:

      TL;DR:使用另一个调用 substring 剥离第一部分。请参阅the String class documentationManipulating Characters in a String


      您的代码似乎根本不起作用。您将第一个空格的位置保存在x,但不要使用它,它应该是sentence.substring(0, x)

      对于句子:你好吗。在first 中,您将存储第一个单词:how

      然后你应该从sentence 中删除第一个单词,如下所示:sentence = sentence.substring(x+1)。现在句子将是:你是

      然后将两者连接起来:

      String newSentence = sentence + " " + first;
      

      你已经存储在变量newSentence 中:你好吗

      上帝保佑!

      【讨论】:

      • 感谢您的简明解释。但是,我仍然对 sentence.substring(x+1) 感到困惑?好吧,没关系,我想我开始明白了。
      • 我发布的字符串类文档解释了它是如何工作的。 x 将包含第一个空格的位置。然后向它添加一个以获得第二个单词的开头。 substring(x+1) 从提供的位置开始创建一个新字符串,这恰好是第二个单词的开头,所以你把第一个单词删掉了。
      • 是的,有道理。另一个问题:如何将“you are how”中的字母 y 变为大写?我试过 "sentence.substring(0,1)" "sentence=sentence.toUpperCase();"它没有用。
      • 查看我提供的字符串文档,我对Java API 并不了解。它应该是 UpperCase() 之类的东西。哦,您可以应用与删除第一个单词相同的逻辑,但这次删除第一个字母,将其大写,然后再次连接。
      • 是的,我厌倦了这样做。我没有成功。相反,我为 substring 分配了一个新的字符串值,并试图让它读取字母“i”,然后将它连接起来。但这也不是很好。它一直读错字符。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多