Java 如何在列表中添加单词每个字符的位置
我试图在列表中添加单词每个字符的位置。 每行包含一个字符,\t和一个数字。单词之间用字符“x”分隔。而且,我必须忽略字符“z” 我的输入是一个ArrayList 例如: ArrayList(输入): 输出应为:Java 如何在列表中添加单词每个字符的位置,java,list,char,position,Java,List,Char,Position,我试图在列表中添加单词每个字符的位置。 每行包含一个字符,\t和一个数字。单词之间用字符“x”分隔。而且,我必须忽略字符“z” 我的输入是一个ArrayList 例如: ArrayList(输入): 输出应为: x 0 T 1 0 h 2 0 e 3 0 x 0 b 1 1 z 0 o 2 0 y 3 0 我的输出 x 0 0 T 0 0 h 0 0 e 0 0 x 0 0 b 1 0 z 0 0 o 0 0 y 0 0 我
x 0
T 1 0
h 2 0
e 3 0
x 0
b 1 1
z 0
o 2 0
y 3 0
我的输出
x 0 0
T 0 0
h 0 0
e 0 0
x 0 0
b 1 0
z 0 0
o 0 0
y 0 0
我的代码
int j = 0;
for (int i = 0; i < list.size() - 1; i++) {
if ((list.get(i)).startsWith("x")) {
j++;
while ((!(list.get(i)).startsWith("z")) && (j != 0)) {
if ((list.get(i)).endsWith("\t1")) {
list.set(i, (list.get(i)).replace("\t1", "\t" + j + "\t1"));
j++;
} else if ((list.get(i)).endsWith("\t0")) {
list.set(i, (list.get(i)).replace("\t0", "\t" + j + "\t0"));
j++;
}
if ("x".equals(list.get(i + 1))) {
j = 0;
}
}
}
}
intj=0;
对于(int i=0;i
我希望我已经理解了你的问题。以下是解决方案:
word是您的输入数组列表
for (int i = 0; i < word.size(); i++) {
String current = word.get(i);
if (current.charAt(0) == 'z') {
result.add(current.charAt(0) + "\t" + 0 + "\t" );
} else if (current.charAt(0) == 'x') {
counter = 1;
result.add(current.charAt(0) + "\t" + 0 + "\t");
} else {
result.add(current.charAt(0) + "\t" + counter + "\t" + current.charAt(current.length()-1));
counter++;
}
请澄清,输入内容是什么?编辑您的帖子并澄清它;)@阿兹罗一世编辑了这篇文章。我的输入是一个ArrayList,其中每行包含一个字符,然后是制表符,然后是一个Int(0或1)。非常感谢您提供此解决方案!我没有“searchedWord”,我只有ArrayList。
for (int i = 0; i < word.size(); i++) {
String current = word.get(i);
if (current.charAt(0) == 'z') {
result.add(current.charAt(0) + "\t" + 0 + "\t" );
} else if (current.charAt(0) == 'x') {
counter = 1;
result.add(current.charAt(0) + "\t" + 0 + "\t");
} else {
result.add(current.charAt(0) + "\t" + counter + "\t" + current.charAt(current.length()-1));
counter++;
}
x 0
T 1 0
h 2 0
e 3 0
x 0
b 1 1
z 0
o 2 0
y 3 0