FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
JavaArithmetic/src/datastructure/map/FileOperation.java at master · sqlcyi2008/JavaArithmetic · GitHub
sqlcyi2008
JavaArithmetic
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
JavaArithmetic
/
src
/
datastructure
/
map
/
FileOperation.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
69 lines (57 loc) · 2.17 KB
Breadcrumbs
JavaArithmetic
/
src
/
datastructure
/
map
/
FileOperation.java
Copy path
File metadata and controls
69 lines (57 loc) · 2.17 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package
datastructure
.
map
;
import
java
.
io
.
BufferedInputStream
;
import
java
.
io
.
File
;
import
java
.
io
.
FileInputStream
;
import
java
.
io
.
IOException
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Locale
;
import
java
.
util
.
Scanner
;
// 文件相关操作
public
class
FileOperation
{
// 读取文件名称为filename中的内容,并将其中包含的所有词语放进words中
public
static
boolean
readFile
(
String
filename
,
ArrayList
<
String
>
words
){
if
(
filename
==
null
||
words
==
null
){
System
.
out
.
println
(
"filename is null or words is null"
);
return
false
;
}
// 文件读取
Scanner
scanner
;
try
{
File
file
=
new
File
(
filename
);
if
(
file
.
exists
()){
FileInputStream
fis
=
new
FileInputStream
(
file
);
scanner
=
new
Scanner
(
new
BufferedInputStream
(
fis
),
"UTF-8"
);
scanner
.
useLocale
(
Locale
.
ENGLISH
);
}
else
return
false
;
}
catch
(
IOException
ioe
){
System
.
out
.
println
(
"Cannot open "
+
filename
);
return
false
;
}
// 简单分词
// 这个分词方式相对简陋, 没有考虑很多文本处理中的特殊问题
// 在这里只做demo展示用
if
(
scanner
.
hasNextLine
()) {
String
contents
=
scanner
.
useDelimiter
(
"
\\
A"
).
next
();
int
start
=
firstCharacterIndex
(
contents
,
0
);
for
(
int
i
=
start
+
1
;
i
<=
contents
.
length
(); )
if
(
i
==
contents
.
length
() || !
Character
.
isLetter
(
contents
.
charAt
(
i
))) {
String
word
=
contents
.
substring
(
start
,
i
).
toLowerCase
();
words
.
add
(
word
);
start
=
firstCharacterIndex
(
contents
,
i
);
i
=
start
+
1
;
}
else
i
++;
}
return
true
;
}
// 寻找字符串s中,从start的位置开始的第一个字母字符的位置
private
static
int
firstCharacterIndex
(
String
s
,
int
start
){
for
(
int
i
=
start
;
i
<
s
.
length
() ;
i
++ )
if
(
Character
.
isLetter
(
s
.
charAt
(
i
)) )
return
i
;
return
s
.
length
();
}
}
Back
|
FazBrowse Home
|
New Git URL