当前位置: 首页 > 知识库问答 >
问题:

替换字符串文本?

唐兴发
2023-03-14

我试图开发一个由多个数组和文本视图组成的应用程序,我遇到了一个问题。

我有3个文本视图和2个数组。

我的一个数组包含句子。我的第一个问题是如何突出每个句子中的特定单词?例如:“这是我的第一个数组项”,我需要突出显示字符串中的一个单词,这样当它显示在文本视图1中时,它就会像这样出现..."这是我的第一个数组物品"

我的另一个数组包含单词。它们显示在textview2中,也应高亮显示。我的下一个问题是,如何将textview1中当前突出显示的单词替换为textview2中新突出显示的单词,并让第三个textview显示新句子?例如:如果从我的句子数组中选择的项目是“这是一个测试”(显示在textview1中),而从我的单词数组中选择的项目是“网站”(显示在textview2中),结果将是“这是一个网站”(显示在textview3中)

到目前为止这是我的代码

import java.util.Random;

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Button;



public class Class1 extends Activity implements OnClickListener
    {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_class1);

        Button btn_sentence = (Button) findViewById(R.id.btn_sentence );
        Button btn_word = (Button) findViewById(R.id.btn_word );
        Button btn_newsentence = (Button) findViewById(R.id.btn_newsentence );

        final Random ran = new Random();
        final Resources res = getResources();
        final TextView text1 = (TextView) findViewById(R.id.sentencetext);
        final TextView text2 = (TextView) findViewById(R.id.wordtext);
        final TextView text3 = (TextView) findViewById(R.id.newsentencetext);

        btn_sentence.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                String[] NewText = null;
                NewText = res.getStringArray(R.array.sentences);
                String strRandom = NewText[ran.nextInt(NewText.length)];
                text1.setText(strRandom);

            }
            });
        btn_word.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                String[] NewText2 = null;
                NewText2 = res.getStringArray(R.array.words);
                String strRandom2 = NewText2[ran.nextInt(NewText2.length)];
                text2.setText(strRandom2);

            }
            });
        btn_newsentence.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                **text3.setText(" " + (text1.getText()) + " " + (text2.getText()) + " ");**

            }
            });

    }


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }}

粗体文本和我得到的一样接近,但真正要做的是结合文本视图1和文本视图2,并在文本视图3中显示它...这不是我想要的。

非常感谢您的帮助~TylerNormal

共有1个答案

唐涛
2023-03-14

您可以使用简单的HTML标记,将要突出显示的单词包装成以下内容:

TextView text = findViewByID(R.id.myTextView);
String test = "This is my first array item";
// example - the word in brackets is to be replaced and captured
// it is just an example to show how you can use it later with more
// complex cases
test = test.replaceAll("(first)", "<b>$1</b>");
text.setText(Html.fromHtml(test));
 类似资料:
  • 问题内容: 我正在寻找一种替换文件中的字符串而不将整个文件读入内存的方法。通常我会使用Reader和Writer,例如以下内容: 但是,我想就地进行替换,并且不认为可以同时在同一文件上打开Reader和Writer。另外,我正在使用Java 1.4,因此无法访问NIO,扫描仪等。 谢谢唐 问题答案: 通常无法对文件进行“就地”替换,除非替换的长度与原始长度完全相同。否则,文件将需要增大,从而将所有

  • 问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要

  • 我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。

  • 问题内容: 我有一列包含网址(ID,网址)的列: 我想将“更新”一词更改为“新闻”。是否可以使用脚本执行此操作? 问题答案: 现在的行就像 将会 http://www.electrictoolbox.com/mysql-find-replace- text/

  • 问题 你需要用另一个值替换字符串的一部分。 解决方案 使用 JavaScript 的 replace 方法。它与给定字符串匹配,并返回已编辑的字符串。 第一个版本需要 2 个参数:模式和字符串替换 "JavaScript is my favorite!".replace /Java/, "Coffee" # => 'CoffeeScript is my favorite!' "foo bar b

  • 问题内容: 我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么? 问题答案: 更改 至: Java中的字符串被设计为不可变的。 这就是为什么不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。 此外,如果你想简单地替换文字,不需要正则表达式的语法支持使