java怎么查找替换_java实现查找替换功能

本文实例为大家分享了java实现查找替换功能的具体代码,供大家参考,具体内容如下

查找

if(searchTxt.getText().equals("")){

JOptionPane.showMessageDialog(null, "查找内容不能为空!");

}else if(!searchTxt.getText().equals("")){

//searchDialog.dispose();

if(fileChoose.focus == 1){

fileChoose.tp1.requestFocus(true);

str = fileChoose.tp1.getText();

startPosition = str.indexOf(searchTxt.getText());

endPosition = startPosition + searchTxt.getText().length();

fileChoose.tp1.select(startPosition, endPosition);

newEndPosition = endPosition;

}else if(fileChoose.focus == 2){

fileChoose.tp2.requestFocus(true);

str = fileChoose.tp2.getText();

startPosition = str.indexOf(searchTxt.getText());

endPosition = startPosition + searchTxt.getText().length();

fileChoose.tp2.select(startPosition, endPosition);

newEndPosition = endPosition;

}

}

查找下一处

nextTemp = newEndPosition;

if(fileChoose.focus == 1){

strAll = fileChoose.tp1.getText();

fileChoose.tp1.select(nextTemp, strAll.length());//选中所有未查找的字符串

nextStr = fileChoose.tp1.getSelectedText();

newStartPosition = nextStr.indexOf(searchTxt.getText()) + nextTemp;//在未查找的字符串中查找对应字符在tp1中的位置

newEndPosition = newStartPosition + searchTxt.getText().length();

fileChoose.tp1.select(newStartPosition, newEndPosition);//找到文本,选择文本

}else if(fileChoose.focus == 2){

strAll = fileChoose.tp2.getText();

fileChoose.tp2.select(nextTemp, strAll.length());//选中所有未查找的字符串

nextStr = fileChoose.tp2.getSelectedText();

newStartPosition = nextStr.indexOf(searchTxt.getText()) + nextTemp;//在未查找的字符串中查找对应字符在tp1中的位置

newEndPosition = newStartPosition + searchTxt.getText().length();

fileChoose.tp2.select(newStartPosition, newEndPosition);//找到文本,选择文本

}

替换

if(fileChoose.focus == 1){

fileChoose.tp1.requestFocus(true);

str = fileChoose.tp1.getText();

startPosition = str.indexOf(searchTxt.getText());

endPosition = startPosition + searchTxt.getText().length();

fileChoose.tp1.replaceSelection(replaceTxt.getText());

newEndPosition = endPosition;

}else if(fileChoose.focus == 2){

fileChoose.tp2.requestFocus(true);

str = fileChoose.tp2.getText();

startPosition = str.indexOf(searchTxt.getText());

endPosition = startPosition + searchTxt.getText().length();

fileChoose.tp2.replaceSelection(replaceTxt.getText());

newEndPosition = endPosition;

}

替换下一处

if(fileChoose.focus == 1){

fileChoose.tp1.requestFocus(true);

nextTemp = newEndPosition;

strAll = fileChoose.tp1.getText();

fileChoose.tp1.select(nextTemp, strAll.length());/

nextStr = fileChoose.tp1.getSelectedText();

newStartPosition = nextStr.indexOf(searchTxt.getText()) + nextTemp;

newEndPosition = newStartPosition + searchTxt.getText().length();

fileChoose.tp1.select(newStartPosition, newEndPosition);

fileChoose.tp1.replaceSelection(replaceTxt.getText());

}else if(fileChoose.focus == 2){

fileChoose.tp2.requestFocus(true);

nextTemp = newEndPosition;

strAll = fileChoose.tp2.getText();

fileChoose.tp2.select(nextTemp,strAll.length());

nextStr = fileChoose.tp2.getSelectedText();

newStartPosition = nextStr.indexOf(searchTxt.getText()) + nextTemp;

newEndPosition =newStartPosition + searchTxt.getText().length();

fileChoose.tp2.select(newStartPosition, newEndPosition);

fileChoose.tp2.replaceSelection(replaceTxt.getText());

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Java记事本的替换功能,可以按照以下步骤: 1. 获取用户输入的查找字符串和替换字符串。 ```java String findStr = JOptionPane.showInputDialog(null, "请输入查找字符串:"); String replaceStr = JOptionPane.showInputDialog(null, "请输入替换字符串:"); ``` 2. 在文本区域中查找用户输入的查找字符串,并将光标定位到查找结果的位置。 ```java String text = textArea.getText(); // 获取文本区域的内容 int startIndex = text.indexOf(findStr); // 在文本区域中查找查找字符串的位置 if (startIndex != -1) { textArea.setSelectionStart(startIndex); // 设置光标起始位置 textArea.setSelectionEnd(startIndex + findStr.length()); // 设置光标结束位置 } ``` 3. 将查找到的字符串替换为用户输入的替换字符串。 ```java textArea.replaceSelection(replaceStr); // 将选中的字符串替换替换字符串 ``` 完整代码示例: ```java import javax.swing.*; public class JavaNotepad { public static void main(String[] args) { JFrame frame = new JFrame("Java记事本"); JTextArea textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); frame.add(scrollPane); JMenuBar menuBar = new JMenuBar(); JMenu editMenu = new JMenu("编辑"); JMenuItem findItem = new JMenuItem("查找"); findItem.addActionListener(e -> { String findStr = JOptionPane.showInputDialog(null, "请输入查找字符串:"); String replaceStr = JOptionPane.showInputDialog(null, "请输入替换字符串:"); String text = textArea.getText(); int startIndex = text.indexOf(findStr); if (startIndex != -1) { textArea.setSelectionStart(startIndex); textArea.setSelectionEnd(startIndex + findStr.length()); textArea.replaceSelection(replaceStr); } else { JOptionPane.showMessageDialog(null, "未找到指定字符串!"); } }); editMenu.add(findItem); menuBar.add(editMenu); frame.setJMenuBar(menuBar); frame.setSize(600, 400); frame.setLocationRelativeTo(null); frame.setVisible(true); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值