我正在尝试从字符串下面打印逗号分隔的值
A,B,C,D,E
这是我的代码
String Inp = "A,B,C,D,E";
StringBuilder op = new StringBuilder();
int Idx = 0;
int IdxUpto = 0;
for(;;){
IdxUpto = Inp.indexOf(",", Idx);
if(IdxUpto==-1){
System.out.println("There is no more commas in String");
op.append(Inp.substring(Idx, Inp.length()));
System.out.println(op);
break;
}
op.append(Inp.substring(Idx, IdxUpto));
Idx = IdxUpto;
System.out.println(op);
}
For循环在第一次提取后没有停止,有人可以帮忙做错什么吗?
编辑:
预期产量
A
B
C
D
E
谢谢
答案 0 :(得分:1)
这是您的代码中令人反感的行:
Uncaught (in promise) DOMException: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
您应该增加加一,以考虑到还必须经过宽度为1的逗号分隔符。所以用这个:
function onupgradeneeded_version1(e) {
// Grab a reference to the opened database
let db = e.target.result;
// Create an objectStore to store our products in (basically like a single table)
// including a auto-incrementing key
let objectStore = db.createObjectStore('products_os', {keyPath: 'id', autoIncrement: true});
// Define what data items the objectStore will contain
objectStore.createIndex('title', 'title', {unique: false});
objectStore.createIndex('price', 'price', {unique: false});
objectStore.createIndex('inStock', 'inStock', {unique: false});
}
但是请注意,您还有其他一些问题。一方面,您应该遵循Java约定,并避免以大写字母开头变量名。同样,在这里使用Idx = IdxUpto;
循环比未指定条件的Idx = IdxUpto + 1;
循环更有意义。考虑到所有这些,这是脚本的有效版本:
while
答案 1 :(得分:0)
String的indexof
API如下所示:
从指定索引处开始,返回指定子字符串首次出现时在此字符串中的索引。
输入条件时,索引为1(找到第一个逗号的索引位置)。现在,您要做的就是将Idx设置为此索引,如下所示:
Idx = IdxUpto;
现在,由于api的索引开始从该索引开始搜索逗号,因此一直说我在索引1处找到了,而您继续尝试在索引1处搜索逗号。要解决此问题,请尝试添加以下内容:
Idx = IdxUpto + 1;
注意事项:
a。使用驼峰大小写变量命名约定。
b。您将追加到StringBuilder,如果需要按预期输出所需的输出,则您的println
语句应更改为:
System.out.println(Inp.substring(Idx, IdxUpto));//mutate Idx assignment after this print statement.
答案 2 :(得分:0)
您可以像这样简单地使用<ul class="grid-container">
<li class="header-item-1">header1</li>
<li class="header-item-2">header2</li>
<li class="header-item-3">header3</li>
<li class="sub-header-item-1">1</li>
<li class="sub-header-item-2">3</li>
<li class="sub-header-item-1">1</li>
<li class="sub-header-item-2">3</li>
<li class="sub-header-item-1">1</li>
<li class="sub-header-item-2">3</li>
</ul>
方法:
String.split()
输出:
A
B
C
D
E