[英]Split string into chars in java
我想讀取一個包含如下文本的大文件:
QSSTNAFDQVS, h
SSTNAFDQVSA, h
STNAFDQVSAQ, h
TNAFDQVSAQG, h
NAFDQVSAQGK, h
AFDQVSAQGKV, h
FDQVSAQGKVI, h
EAILGDQFLKQ, h
AILGDQFLKQQ, h
ILGDQFLKQQY, h
LGDQFLKQQYV, h
VGKMAKSVMGH, h
GKMAKSVMGHN, h
KMAKSVMGHNW, h
MAKSVMGHNWV, h
....
我的代碼:
BufferedReader br = new BufferedReader(file);
while((line = br.readLine()) != null) {
String[] values = line.split(",");
String atributes = values[0];
String cls = values[1].trim();
for (int i=0; i<atributes.length(); i++) {
char atribute = atributes.charAt(i);
System.out.print(atribute + " ");
}
System.out.println();
}
我的問題是,在我分割了字符串atributes
並打印之后,它們以隨機順序打印:
S S D I T A S V N C A
S D I T A S V N C A K
D I T A S V N C A K K
I T A S V N C A K K I
T A S V N C A K K I V
A S V N C A K K I V S
.....
如果我進行打印但不進行以下拆分:
BufferedReader br = new BufferedReader(file);
while((line = br.readLine()) != null) {
String[] values = line.split(",");
String atributes = values[0];
String cls = values[1].trim();
System.out.println(atributes);
}
我以正確的順序得到它們:
QSSTNAFDQVS
SSTNAFDQVSA
STNAFDQVSAQ
TNAFDQVSAQG
NAFDQVSAQGK
AFDQVSAQGKV
FDQVSAQGKVI
EAILGDQFLKQ
AILGDQFLKQQ
.....
拆分它們后,如何解決此問題,以便以與文本文件相同的順序獲得這些值?
我認為問題不在於屬性是隨機的,我在您的代碼中看不到任何原因。 您確定是這種情況嗎? 這是完整的代碼嗎?
我運行了以下代碼:
String line = "ZYXABCDEFGHIJ, h";
String[] values = line.split(",");
String atributes = values[0];
String cls = values[1].trim();
for (int i=0; i<atributes.length(); i++) {
char atribute = atributes.charAt(i);
System.out.print(atribute + " ");
}
我覺得很好: ZYXABCDEFGHIJ
您的問題在其他地方-此代碼-顯然以與您相同的方式起作用:
static final String[] data = {
"QSSTNAFDQVS, h",
"SSTNAFDQVSA, h",
"STNAFDQVSAQ, h",
"TNAFDQVSAQG, h",
"NAFDQVSAQGK, h",
"AFDQVSAQGKV, h",
"FDQVSAQGKVI, h",
"EAILGDQFLKQ, h",
"AILGDQFLKQQ, h",
"ILGDQFLKQQY, h",
"LGDQFLKQQYV, h",
"VGKMAKSVMGH, h",
"GKMAKSVMGHN, h",
"KMAKSVMGHNW, h",
"MAKSVMGHNWV, h",};
public void test() {
for (String line : data) {
String[] values = line.split(",");
String atributes = values[0];
String cls = values[1].trim();
for (int i = 0; i < atributes.length(); i++) {
char atribute = atributes.charAt(i);
System.out.print(atribute + " ");
}
System.out.println();
}
}
版畫
Q S S T N A F D Q V S
S S T N A F D Q V S A
S T N A F D Q V S A Q
T N A F D Q V S A Q G
N A F D Q V S A Q G K
A F D Q V S A Q G K V
F D Q V S A Q G K V I
E A I L G D Q F L K Q
A I L G D Q F L K Q Q
I L G D Q F L K Q Q Y
L G D Q F L K Q Q Y V
V G K M A K S V M G H
G K M A K S V M G H N
K M A K S V M G H N W
M A K S V M G H N W V
可以由多個線程讀取文件嗎?
似乎您在第一個代碼的輸入中輸入了錯誤的文件。
您能否發布以下結果:
BufferedReader br = new BufferedReader(file);
while((line = br.readLine()) != null) {
String[] values = line.split(",");
String atributes = values[0];
String cls = values[1].trim();
System.out.println(atributes);
System.out.println();
for (int i=0; i<atributes.length(); i++) {
char atribute = atributes.charAt(i);
System.out.print(atribute + " ");
}
System.out.println();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.