『壹』 使用java正則表達式過濾一些特定的詞
直接把sa_user替換成空格 就行了
『貳』 java怎麼跟該text中單詞,首字母大寫,|該為空格
/* 如果你只是單純的為了結果,我想簡單的輸出辦法是利用重定向。即
java Test >> test.txt 將結果輸出到test.txt里, >>是追加。
如果用Java實現,那麼創建FileWriter實例時要指定是追加,不然就把原來的內容覆蓋了。
源文件保存為Test.java, 然後將上面所寫的要轉換的字元存放到一個文本文件中,我下面用的test.txt,你可以根據自己的需要進行調整,當然要把這2個文件放在同一目錄下,因為我用的是相對路徑,這點要注意。轉換的思路是先要把各個單詞分離,用的了String.split(String regx)這個方法, 由於你用的是|進行分隔,而這個又是正則式中的符號,所以要轉義用\\| , 將各個單詞分離後會存放到一個字元數組中,然後將其調整為首字母大寫,即ToUpper方法所做的工作,然後再在每個單詞後面加入空格,相當於|已經過濾掉,並不是轉換, 要注意最後一個單詞是不再加空格的。所以可以先全部加入空格,最後完成後再用trim將右邊的空格濾掉即可 */
import java.io.*;
public class Test
{
public static String ToUpper(String str)
{
if(str.isEmpty())
return str;
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(0, Character.toTitleCase(sb.charAt(0)));
return sb.toString();
}
public static void main(String[] args) throws IOException
{
FileReader reader = null;
BufferedReader bfr = null;
FileWriter writer = null;
BufferedWriter bfw = null;
try{
reader = new FileReader("test.txt");
bfr = new BufferedReader(reader);
String line = "";
StringBuilder sb = new StringBuilder();
while((line = bfr.readLine()) != null) {
String[] words = line.split("\\|");
for(int i = 0; i < words.length; i++) {
sb.append(ToUpper(words[i]));
sb.append(" ");
}
}
System.out.println(sb.toString().trim());
writer = new FileWriter("test.txt", true);
bfw = new BufferedWriter(writer);
bfw.write("\n*****output*****\n");
bfw.write(sb.toString().trim());
bfw.flush();
}
finally {
if(reader != null)
reader.close();
if(bfr != null)
bfr.close();
if(writer != null)
writer.close();
if(bfw != null)
bfw.close();
}
}
}
『叄』 設計實現一個簡單的英文單詞自動過濾器, 自動獲取輸入文本中出現的在固定單詞列表WL0={I, you, he, she,
importjava.io.BufferedReader;
importjava.io.FileReader;
publicclassStatWord{
publicstaticvoidmain(String[]args){
try{
Stringfile=".txt";
String[]keywords=newString[]{"I","you","he","she","it","we","they"};
int[]result=newStatWord().stat(file,keywords);
for(inti=0;i<keywords.length;i++){
System.out.println(keywords[i]+":"+result[i]);
}
}catch(Exceptione){
e.printStackTrace();
}
}
privateint[]stat(StringfilePath,String[]keywords)throwsException{
if(keywords==null){
returnnull;
}
Stringcontent=readFile(filePath);
if(content==null){
returnnull;
}
int[]result=newint[keywords.length];
for(inti=0;i<keywords.length;i++){
result[i]=stat(content,keywords[i]);
}
returnresult;
}
privateStringreadFile(Stringtxt)throwsException{
BufferedReaderbr=newBufferedReader(newFileReader(txt));
StringBuildersb=newStringBuilder();
while(true){
Stringline=br.readLine();
if(line==null){
break;
}
sb.append(line).append(' ');
}
if(sb.length()>0){//deletethelast' '
sb.setLength(sb.length()-1);
}
br.close();
returnsb.toString();
}
privateintstat(Stringcontent,Stringkeyword){
intcount=0;
intstart=-keyword.length();
while(true){
start=content.indexOf(keyword,start+keyword.length());
if(start<0){
break;
}
if((start-1>=0&&Character.isLetter(content.charAt(start-1)))
||(start+keyword.length()<content.length()&&Character.isLetter(content.charAt(start+keyword.length())))
){//maybelike:find"he",butthewordis"she"、"together"...
continue;
}
count++;
}
returncount;
}
}
『肆』 java正則表達式過濾特殊字元
Stringregexp="[^'"%]*";
Stringstring="abc%";
System.out.println(string.matches(regexp));
『伍』 java正則匹配語句中特定單詞
使用正則表達式的 「零寬度正回顧後發斷言「這個正則就是匹配以某個指定字元開頭的欄位,具體定義你可以去搜索一下,java代碼如下:
String target = "scoreboard objectives setdisplay sidebar R_HT_win";
Pattern pattern = Pattern.compile("(?<=scoreboard objectives setdisplay sidebar\\s{1})\\w*");
Matcher matcher = pattern.matcher(target);
String result = null;
if (matcher.find()){
int startIndex = matcher.start();
int endIndex = matcher.end();
result = target.substring(startIndex,endIndex);
}
System.out.println(result);
『陸』 在JAVA中怎麼實現關鍵字過濾
自己判斷一下, 字元串中是否包含某個關鍵字即可, String.contains(CharSequence s) 如果存在返回true, 否則返回false
『柒』 JAVA特殊字元過濾方法
public static String StringFilter(String str) throws PatternSyntaxException {
// 只允許字母和數字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字元
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】『;:」「』。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
『捌』 麻煩會java的各位寫個簡單的method~篩選一句話中得單詞
publicstaticintwordCounting(Stringoriginal,intminLength){
Patternp=Pattern.compile("\w{"+minLength+",}");
Matcherm=p.matcher(original);
intnum=0;
while(m.find()){
num++;
}
returnnum;
}