A. java裡面如何截取兩個關鍵字中間的字元串
1.split()+正則表達式來進行截取。
將正則傳入split()。返回的是一個字元串數組類型。不過通過這種方式截取會有很大的性能損耗,因為分析正則非常耗時。
String str = "abc,12,3yy98,0";String[] strs=str.split(",");for(int i=0,len=strs.length;i<len;i++){ System.out.println(strs[i].toString());}
運行結果:
abc
12
3yy98
0
2.通過subString()方法來進行字元串截取。
subString通過不同的參數來提供不同的截取方式
2.1隻傳一個參數
例如:
String sb = "bbbdsajjds";
sb.substring(2);
將字元串從索引號為2開始截取,一直到字元串末尾。(索引值從0開始);
2.2傳入2個索引值
String sb = "bbbdsajjds";
sb.substring(2, 4);
從索引號2開始到索引好4結束(並且不包含索引4截取在內,也就是說實際截取的是2和3號字元);
運行結果如下:
bdsajjds
bd
3.通過StringUtils提供的方法
StringUtils.substringBefore(「dskeabcee」, 「e」);
/結果是:dsk/
這里是以第一個」e」,為標准。
StringUtils.substringBeforeLast(「dskeabcee」, 「e」)
結果為:dskeabce
B. java 如何在一篇文章中取出某個關鍵字
這個方法是取出了含有keyword的那一行,你要去關鍵字,只要返回true,直接取就O了!!忘樓主採納!
public void selectKeyWord(String keyWord){
String filepath = "";
try {
DataInputStream dis = new DataInputStream(new FileInputStream(filepath));
while(dis.read()!=-1){
String str = dis.readUTF();
if(str.contains(keyWord)){
System.out.println(str);
}
}
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}
}
C. java word中提取關鍵字
首先,要用Java的File類中函數(如open,read等,記不清了)打開word文檔,利用形式語言與自動機的原理,跳過word文檔的頭部,分析內容,利用String中的equals()方法匹配"java"字元串。
D. 如何用java實現文本的關鍵字提取
可以使用java API中的URL抓取流,也可以使用Apache的HttpClient等多種方法,最終得到的就是字元串咯,得到字元串就好辦了,使用正則匹配,將匹配的保存起來就可以了
E. 提取Java關鍵字
我寫了個Keywords.java類,代碼如下:
*************************************************************
importjava.awt.BorderLayout;
importjava.awt.Dimension;
importjava.awt.FlowLayout;
importjava.awt.GridLayout;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.StringTokenizer;
importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JFileChooser;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.UIManager;
{
String[]keywords={"abstract","boolean","break","byte","case",
"catch","char","class","continue","default","do","double",
"else","extends","false","final","finally","float","for",
"if","implements","import","instanceof","int","interface",
"long","native","new","null","package","private","protected",
"public","return","short","static","super","switch",
"synchronized","this","throw","throws","transient","true",
"try","void","volatile","while","const","goto"};
JTextAreatext;
JTextArearesult;
publicKeywords(){
this.setTitle("計算關鍵字數");
//文本框
text=newJTextArea(6,50);
text.setLineWrap(true);
JScrollPanetextScroll=newJScrollPane(text);
text.setBorder(BorderFactory.createBevelBorder(1));
JPaneltextPanel=newJPanel(newBorderLayout());
textPanel.setBorder(BorderFactory.createTitledBorder("導入的文本"));
textPanel.add(textScroll);
//結果框
result=newJTextArea(6,50);
result.setLineWrap(true);
JScrollPaneresultScroll=newJScrollPane(result);
result.setBorder(BorderFactory.createBevelBorder(1));
JPanelresultPanel=newJPanel(newBorderLayout());
resultPanel.setBorder(BorderFactory.createTitledBorder("計算結果"));
resultPanel.add(resultScroll);
//導入文本和結果框
JPanelallPanel=newJPanel();
allPanel.setLayout(newGridLayout(2,1));
allPanel.add(textPanel);
allPanel.add(resultPanel);
//按鈕
JButtonimpButton=newJButton("導入文本");
JButtoncalcButton=newJButton("計算關鍵字數");
JPanelbuttonPanel=newJPanel(newFlowLayout());
buttonPanel.add(impButton);
buttonPanel.add(calcButton);
//添加
this.add(allPanel,BorderLayout.CENTER);
this.add(buttonPanel,BorderLayout.SOUTH);
//this.setSize(400,300);
this.pack();
Toolkittool=Toolkit.getDefaultToolkit();
Dimensionscreen=tool.getScreenSize();
this.setLocation(screen.width/2-this.getWidth()/2,screen.height
/2-this.getHeight()/2);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//導入文本
impButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
writeText();
}
});
//計算關鍵字數
calcButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
//for(Stringss:s){
//System.out.println(ss);
//}
String[]start=text.getText().trim().split(" ");
System.out.println("start:"+start.length);
//String[]rets=newString[start.length];
StringBufferret=newStringBuffer();
for(inti=0;i<start.length;i++){
StringTokenizerst=newStringTokenizer(start[i]);
intn=0;
while(st.hasMoreTokens()){
Stringcomp=st.nextToken();
for(Strings:keywords){
if(s.equals(comp)){
n++;
if(n==1){
ret.append(i+":");
ret.append(s);
}else{
ret.append(","+s);
}
}
}
}
if(n!=0){
ret.append(" ");
}
}
result.setText(ret.toString().trim());
}
});
}
//導入文本
publicvoidwriteText(){
try{
JFileChooserchooser=newJFileChooser();
chooser.showOpenDialog(this);
Filefile=chooser.getSelectedFile();
BufferedReaderbr=newBufferedReader(newFileReader(file));
Strings;
text.setText("");
while((s=br.readLine())!=null){
text.append(s+" ");
}
text.setText(text.getText().trim());
System.out.println(text.getText());
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione2){
e2.printStackTrace();
}
}
publicstaticvoidmain(String[]args)throwsException{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
newKeywords();
}
}
*************************************************************
運行結果如下:
F. java word中提取關鍵字
給個思路吧。
讀取word用doc4j,然後就是讀成字元串進行處理了。
提取關鍵字首先是中文分詞技術,就是把一段話劃分成多個組成的詞語,然後統計詞語的出現次數,這個是主要依據。這個是有實現的jar包的,可以去搜,搜java 中文分詞就行。
分詞之後,記錄詞語出現位置,這個是輔助的依據,記錄詞語一句話中的位置,越靠前越像關鍵字,權重越高。
甚至可能需要建立一個權重體系,次數設置一個權重,整體位置設置一個權重,不同位置權重也不同。不了解權重可以理解成系數(百分比的,然後計算那個詞是關鍵詞)。
同時需要注意,可能需要排除一些常用詞,哪些次需要排除,這個需要根據程序反復運行,讀取不同word文章的結果來定。
不明白的話在問吧。
G. java編程 求一個能夠從TXT文本中提取中文關鍵字並輸出的程序
以下這個程序就是 獲取到.txt中的中文,然後在控制台中輸出
希望這個能幫到你啊,望採納啊
package cn.ima_21;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) throws IOException {
// 創建對象
FileReader fr = new FileReader("a.txt");
//開發一般如下寫
int num = 0;
while((num=fr.read())!=-1){
System.out.print((char)num);
}
//釋放資源
fr.close();
}
}
H. 請大家幫幫忙. 使用java爬蟲得到網頁以後怎麼提取裡面自己需要的內容呢如果會代碼請您寫一下.謝謝您
你自己寫個方法 取自己需要的內容
I. java全部關鍵字及其每個用法怎麼解釋
java關鍵字 1.break和continuex0dx0a break和continue是兩個java關鍵字,在一個循環中,比如50次的循環語句中,如果在某次循環中執行了break語句,那麼整個循環語句就結束。x0dx0a 如果在某次循環中執行了continue語句,那麼本次循環就結束,即不再執行本次循環中循環體中continue語句後面的語句,而轉入進行下一次循環。x0dx0a2.static關鍵字x0dx0a (1)用static修飾的變數是類變數,否則是實例變數,類變數被所有對象共享,即所有對象的這個類變數都分配給同一處內存,改變其中一個對象的這個類變數就會改變其他對象的這個類變數。x0dx0a (2)java程序執行時,類的位元組碼文件被載入到內存,如果該類沒有創建對象,類的實例成員變數不會被分配內存。但是類中的類變數被載入到內存時,就分配了相應的內存空間。如果該類創建對象,那麼不同對象的實例變數互不相同,即分配不同的內存空間,而內變數不再分配內存空間,即所有對象的類變數是相同的。x0dx0a (3)當創建第一個對象時,類中的實例方法就分配了入口地址,當再創建對象時,不再分配入口地址,也就是說方法的入口地址被所有對象共享,當所有對象都不存在時,方法的入口地址才被取消。x0dx0a3.this關鍵字x0dx0a (1) this是java的一個關鍵字,表示某個對象。this可以出現在實例方法和構造方法中,但是不可以出現在類方法中(因為非靜態的變數或方法不能在靜態的方法中被調用),this關鍵字出現在構造方法中時,代表使用該構造方法所創建的對象。實例方法必須通過對象來調用,當this關鍵字出現在類的實例方法中時,代表正在調用方法的當前對象。x0dx0a (2)實例方法可以操縱成員變數,當實例成員變數在實例方法中出現時,默認的格式是this.成員變數x0dx0a4.final關鍵字x0dx0a final關鍵字可以修飾類、成員變數和方法中的參數。x0dx0a final類不能繼承。x0dx0a final方法不能被重寫,但可以被繼承。x0dx0a final成員變數必須賦初值,且不能改變。x0dx0a final參數的值不能改變。x0dx0a5.abstract關鍵字x0dx0a abstract關鍵字可以修飾類、變數、方法。x0dx0a abstract類可以有abstract方法。對於abstract方法,只允許聲明,不允許實現,而且不能使用final修飾abstract方法(因為final方法不能被重寫)。x0dx0a 對於abstract類,不能使用new運算符創建該類的對象,需產生其子類,由子類創建對象,如果一個類是abstract類的子類,那麼它必須實現父類的abstract方法 x0dx0a6.super關鍵字x0dx0a (1)子類不能繼承父類的構造方法,因此,子類如果想使用父類的構造方法,必須在子類的構造方法中使用,並且必須使用關鍵字super來調用,且super必須在子類構造方法的第一條語句。x0dx0a (2)如果類裡面定義了一個或多個構造方法,那麼java不提供默認的構造方法(不帶參數的構造方法),因此,當在父類中定義了多個構造方法時,應該包括一個不帶參數的構造方法,以防子類省略super時出現錯誤。