【问题标题】:How to not add a string to a text area if it contains something - Java如果字符串包含某些内容,如何不将字符串添加到文本区域 - Java
【发布时间】:2012-04-30 00:23:21
【问题描述】:

我有以下:

InputStream inputFromServer
TextArea t
String display
String validation

字符串显示保存来自输入流的数据,然后将其添加到文本区域。我想检查是否显示包含验证,然后不要将其写入文本区域。这是我目前拥有的代码:

while ((inputFromServer.read())!=-1)
{
    display = display + ((char)inputFromServer.read());
    t.setText(s);
}

我想要类似的东西:

while ((inputFromServer.read())!=-1)
{
    display = display + ((char)inputFromServer.read());
    if display contains validation {
        THEN DONT WRITE IT TO THE TEXT AREA
    } 
    else{
        t.setText(s);
    }
}

如果方法完全错误,那么有人可以指导我正确的方向吗?谢谢

【问题讨论】:

  • 什么是验证?如果当前字符串在其中?
  • 当用户在 textField 中键入内容时,字符串变量会以另一种方法初始化。他们输入的内容成为验证变量中的字符串。我给出的代码总是从服务器读取并添加到 textarea。我不希望它添加任何包含验证字符串的消息。所有其他消息都应添加到文本区域
  • 如果 textarea 包含验证变量,t.setText 应该什么都不添加,还是只添加 sting 但没有验证字符串?并且验证字符串是否是高级已知的?
  • 不添加任何内容 - 如果它包含验证字符串,则添加整个消息或跳过该消息
  • 如果您只想查看字符串是否包含某个子字符串,如果您不关心大小写,可以使用display.contains("hello");display.toLowerCase().contains("hello");

标签: java string textarea inputstream


【解决方案1】:

你可以这样做:

while ((inputFromServer.read())!=-1)
{
    display = display + ((char)inputFromServer.read());
    if (!display.contains(VALIDATION_STRING) {
        t.setText(s);
    } 
}

【讨论】:

  • 您最近的评论不清楚。你能给我们更多关于 VALIDATION 变量的信息吗?它是如何初始化的?什么时候?那些是固定的 String 吗?
  • 我试过了——它可以工作,但是当显示字符串包含验证字符串时,以后不会有其他消息被添加到文本区域,即使它不包含它。
  • 验证变量声明为字符串验证; - 在 textfields actionlistener 中,它接受用户输入并使其成为验证变量 = validation = inputfromUser.getText();
  • 为什么会这样?看看显示 = .... 行。一旦它包含验证字符串,您只需添加它。除非您从显示屏上清除它,否则它将始终包含它。
【解决方案2】:

好的,因为验证 String 可能未初始化,您可以检查一下

display += ((char)inputFroMServer.read());
if(validationString.equals("") || !display.contains(validationString)) {
      t.setText(display);
}

或者就像我在评论中说的,你可以这样做:

!display.toLowerCase().contains(validationString.toLowerCase()) 

如果你不关心大小写

另外,如果您要多次编辑显示字符串,您应该考虑使用StringBuilder

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2021-10-31
    • 2022-01-18
    • 2018-05-14
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多