句子中大写不同颜色的单词

默认情况下,我试图将聊天数据包中发送的所有单词着色为蓝色,但如果句子中的任何单词是大写的(只是单词的第一个字母)(第一个单词除外),我想将其着色为lime green。我是 Java 的初学者,但这是我目前想到的。问题是它仍然设置任何单词 blue 的颜色,无论它是否大写。


public void sendChatPacket(String s, int id) {

    boolean isUpperCase = Character.isUpperCase(s.length());

    s = isUpperCase ? "<col=65280>\" + s + \"</col>" : "<col=255>\" + s + \"</col>";

}


public void showInformation(Player player) {

    sendChatPacket("I can start this quest by speaking to Hetty", 8147);

    sendChatPacket("who is in Rimmington.", 8148);

}

任何帮助表示赞赏,谢谢!


隔江千里
浏览 151回答 3
3回答

收到一只叮咚

不确定您要在这里做什么,但是您分配给的任何s内容都不会对调用者生效:public void sendChatPacket(String s, int id) {&nbsp; &nbsp; boolean isUpperCase = Character.isUpperCase(s.length());&nbsp; &nbsp; s = isUpperCase ? "<col=65280>\" + s + \"</col>" : "<col=255>\" + s + \"</col>";}Java中方法参数是按值传递的。即使您分配s给其他东西,调用者传递的参数也不会受到影响。在你的调用者中,你也没有对传入的消息做任何事情。所以你的代码根本没有做任何有意义的事情。如果这不是您的真实代码,请提供演示问题的代码。告诉我们预期的结果是什么以及您的示例代码如何不满足您的期望。下次您提问时的一点建议:您在这里提供了太多不相关的上下文。比如这个题,你应该自己做过诊断,应该发现调用了之后sendChatPacket,结果出乎意料。您无需告诉我们任何颜色。您只是在操作一个字符串,而字符串操作并没有按预期工作。通过简化场景,您可以提供一个 MVCE,使人们更容易理解您的问题(因此,提供帮助)

胡子哥哥

您是初学者,但请下次您提出问题时,请花更长的时间来解释您的目标......以下代码将为以大写字母开头的单词选择第一种颜色,为所有其他单词选择第二种颜色if (s != null && s.length() > 0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringBuilder result = new StringBuilder(s.length() * 2);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append("<col=255>");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String[] split = s.split(" ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (String t : split) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean isUpperCase = Character.isUpperCase(t.charAt(0));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (isUpperCase)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append("<col=65280> " + t + "</col>");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(" "+t);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append("</col>");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s = result.toString();&nbsp; &nbsp; &nbsp; &nbsp; }如果您正在打印纯 html,这将起作用...无论如何,我强烈建议在进入复杂的事情之前先从基础开始......
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java