[英]Need to format string output to certain length, how do I count each char in a string to a set limit
我需要在不格式化輸入字符串本身的情況下限制輸出字符串的長度。 我想對讀取到任意限制的字符串的每個字符進行計數(比如說20),這時它將開始在新行上打印。 但是,我還需要單詞以保持連字符,沒有連字符或其他任何東西,因此我認為一旦達到計算每個字符的地步,我就可以引入一個邏輯語句,這樣它才會在出現空格后才開始新行20個限制。
這可能嗎?
在下面的徽章幫助下,這是我現在的位置:
碼:
responder.printWelcome();
while(!finished) {
HashSet<String> input = reader.getInput();
if(input.contains("bye")) {
finished = true;
}
else {
String response = responder.generateResponse(input);
Scanner scan = new Scanner (response);
int count = 0;
scan.useDelimiter("");
StringBuilder sb = new StringBuilder();
while (scan.hasNext()){
if (count <20){
sb.append(scan.next());
count = count + 1;
}
else{
System.out.println(sb);
sb.delete(0, 20);
count = 0;
}
}
}
}
responder.printGoodbye();
}
編輯:修復了不打印整個句子的輸出問題(盡管它仍然沒有打印出句子的結尾-'configuration。'僅顯示為'configurati')
誰能幫我格式化它,以便它在到達空格之前不會打印新行?
EDIT2:多虧了Anuswadh,我離我越來越近了! 盡管新問題是它似乎正在刪除字符。
當我輸入此文本時:
我於1874年11月30日出生於Spencer家族分支下的Marlborough公爵家族,您可能認識我的遠親Diana Spencer。
它返回以下文本:
我於1874年11月30日出生在斯潘塞家族的一個分支馬爾克斯伯爵公爵(Dukes f Marlborough)家族中-您可能知道我的遠親狄娜(Dina)。
您可以構造一個傳遞字符串的Scanner對象。
Scanner scan = new Scanner (string_name);
然后建立一個循環,讀取帶有您條件的字符,例如
int count = 0;
scan.useDelimiter("");
StringBuilder sb = new StringBuilder();
while (scan.hasNext()){
if (count <20){
sb.append(scan.next());
}else{
//do what ever you want
}
您可以查看下一個字符是否為空格,如果不是,請進行迭代,直到到達為止。
responder.printWelcome();
while(!finished) {
HashSet<String> input = reader.getInput();
if(input.contains("bye")) {
finished = true;
}
else {
String response = responder.generateResponse(input);
Scanner scan = new Scanner (response);
int count = 0;
scan.useDelimiter("");
StringBuilder sb = new StringBuilder();
while (scan.hasNext()){
if (count <20){
sb.append(scan.next());
count = count + 1;
}
else{
String c = scan.next();
if (!(c.equals(" "))) {
if (sb.charAt(sb.length() - 1) != ' ') {
while (!(c.equals(" "))) {
if (!scan.hasNext()) {
break;
}
c = scan.next();
sb.append(c);
}
}
}
System.out.println(sb);
sb = new StringBuilder();
count = 0;
}
}
}
}
responder.printGoodbye();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.