我扮演以下角色: 现在, response.stdout看起来完全像: 如何将其转换为字典列表(如{"Server": "10.8.7.1", "Domain": "com","State": "Health","Type": "B"} ))? 我考虑编写自己的python ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我已经遍历了数组B
检查arrayList A
是否存在公共元素。 然后删除这些元素,并打印出A
作为数组。
但是我的问题是如何打印出A
(在我的程序中是System.out.println(crIss.get(m));
)作为arrayList(只是一个没有[]
括号的元素列表)而不是数组?
这是我正在处理的完整代码:
package issuetracking;
import java.util.*;
public class IssueTrackingObject {
ArrayList<String> crIss = new ArrayList<String>();
Scanner input = new Scanner(System.in);
boolean crIss_bool;
int numOfSolvedIss;
private String[] solvedIss;
//lets user create some issues and add them into an arrayList
public void createIssue() {
System.out.println("Enter 5 issues: ");
for (int i = 0; i < 5; i++) {
System.out.println("Issue " + (i + 1 + ": "));
crIss_bool = crIss.add(input.nextLine());
}
}
//Let user mark some issues as solved (which are already in the list that the user has just created)
public void solvedIssue() {
System.out.println("How many solved issue you have(Must be less than 5): ");
numOfSolvedIss = input.nextInt();
solvedIss = new String[numOfSolvedIss];
for (int k = 0; k < numOfSolvedIss; k++) {
System.out.print("Enter solved issue(REMEMBER THAT THE SOLVED ISSUE MUST BE FROM ONE OF THEM YOU ALREADY HAVE CREATED)no. " + (k + 1) + ": ");
solvedIss[k] = input.next();
}
}
public void printUnsolvedIssue() {
for(int m=0; m<solvedIss.length;m++){
crIss_bool = crIss.remove(solvedIss);
System.out.println(crIss.get(m));
}
}
public void printSolvedIssue() {
System.out.println("");
System.out.println("LIST OF SOLVED ISSUE:");
for (int l = 0; l < solvedIss.length; l++) {
System.out.printf("%s ", solvedIss[l]);
}
}
}
主类:
package issuetracking;
import java.util.*;
public class IssueTracking {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
IssueTrackingObject its = new IssueTrackingObject();
System.out.println(" WELCOME TO ISSUE TRACKING SYSTEM!\n\n");
System.out.println("Choose from menu: ");
System.out.println("1. Create new issue\n2. Mark issue(s) as solved\n"
+ "3. View solved issue(s)\n4. View unsolved issue(s)");
System.out.println("Enter you choise:");
//String userChoise = input.next();
//switch-case
while (true) {
String userChoise = input.next();
switch (userChoise) {
case "1":
//System.out.println("Enter 5 issues: ");
//call appropriate issue
its.createIssue();
break;
case "2":
//System.out.println("Mark solved issues (You must enter at least one issue): ");
//call appropriate issue
its.solvedIssue();
break;
case "3":
System.out.println("Solved issue: ");
//call appropriate method
its.printSolvedIssue();
break;
case "4":
System.out.println("Usolved issue: ");
//call appropriate issue
its.printUnsolvedIssue();
break;
default:
System.out.println("Invalid input");
break;
}
}
}
}
当您打印类似ArrayList
的对象时,您遇到的打印行为是因为Java调用了Class的.toString()
方法。 ArrayList.toString()
继承自AbstractCollection.toString()
,该文档可在此处找到。
我建议更改此行为的方法是创建一个类似于以下内容的单独的Print函数:
public void printList(ArrayList<String> list)
{
for(String str : list)
{
System.out.print(str+" ");
}
System.out.println();
}
然后调用此函数代替您的打印语句:
printList(crIss);
请注意,此打印将在一行上打印列表中的每个元素,并用空格隔开。
有几种方法可以做到这一点。 我给你看三个:
将数据存储在String
并删除不需要的字符:
String tmp = crIss.toString(); tmp = tmp.substring(1, tmp.length() - 1); System.out.println(tmp);
与上述方法类似,但使用replace
:
String tmp = crIss.toString().replace('[', '\\0').replace(']', '\\0'); System.out.println(tmp);
遍历List
并将值存储在StringBuilder
:
StringBuilder sb = new StringBuilder(); for (String string : crIss) { sb.append(string).append(", "); } sb.remove(sb.length() - 2, sb.length()); System.out.println(sb.toString());
只需遍历crIss
并打印其中的每个项目,然后打印所需的定界符即可。 在此示例中,我将用“,”分隔项目。
public void printUnsolvedIssue() {
for(int m=0; m<solvedIss.length;m++){
crIss.remove(solvedIss[i]);
}
for(int i = 0; i < crIss.size(); i++) {
System.out.print(crIss.get(i));
// only print the delimiter if it isn't the last item in the list
if(i < crIss.size() - 1) {
System.out.print(", ");
}
}
}
还要注意,我将crIss.remove(solvedIss)
部分更改为crIss.remove(solvedIss[i])
。 这样,它将删除solvedIss
中的每个项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.