我想将一个简单的程序放到一起,该程序可以接收x个输入,将它们放入一个数组中,在另一个数组中再次执行相同的操作,然后检查两个列表中都出现了哪些输入。
对于获取输入,我想不出一种方法来继续接受任意数量的输入,仅在输入显示“停止”或“结束”或类似内容时才停止。
我是一个自学成才的初学者,所以请原谅我对这些东西的无知。
我还没有为第二个阵列进行设置,但是知道如何进行设置(我很确定)。我只是停留在输入问题以及如何比较输入上
//input of codes
System.out.println("How many codes do you wanna put in?");
x = input.nextInt();
int[] binList = new int[x];
System.out.println("Okay. Enter your codes:");
for (int n = 0; n < x; n++) {
binList[n] = input.nextInt();
}
//sort codes
Arrays.sort(binList);
//display codes
System.out.println("Here are your codes:");
for (int n = 0; n < x; n++) {
System.out.println(binList[n]);
答案 0 :(得分:0)
您可以执行以下操作:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// get first list elements
List<Integer> list1 = getCodes(sc);
// get second list elements
List<Integer> list2 = getCodes(sc);
sc.close();
// display common codes
System.out.println("Common elements are: ");
list1.retainAll(list2);
for (Integer code : list1) {
System.out.println(code);
}
}
/**
* Reads input from console.
*
* @param sc
* @return
*/
private static List<Integer> getCodes(Scanner sc) {
System.out.println("How many codes do you wanna put in?");
int n = sc.nextInt();
List<Integer> list = new ArrayList<>();
System.out.println("Okay. Enter your codes:");
for (int i = 0; i < n; i++) {
list.add(sc.nextInt());
}
return list;
}
}
答案 1 :(得分:0)
以下是一个答案,显示了如何使用An error occurred while starting the kernel
Traceback (most recent call last):
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\spyder_kernels\console\__main__.py", line 11, in
start.main()
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\spyder_kernels\console\start.py", line 287, in main
import_spydercustomize()
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\spyder_kernels\console\start.py", line 39, in import_spydercustomize
import spydercustomize
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\spyder_kernels\customize\spydercustomize.py", line 27, in
from IPython.core.getipython import get_ipython
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\IPython\__init__.py", line 54, in
from .core.application import Application
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\IPython\core\application.py", line 23, in
from traitlets.config.application import Application, catch_config_error
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\traitlets\config\__init__.py", line 6, in
from .application import *
File "C:\Users\k.g\AppData\Local\Continuum\anaconda3\lib\site‑packages\traitlets\config\application.py", line 100, in
class LevelFormatter(logging.Formatter):
AttributeError: module 'logging' has no attribute 'Formatter'
查找相似的数组元素。它以两个> conda info
active environment : base
active env location : C:\Users\k.g\AppData\Local\Continuum\anaconda3
shell level : 1
user config file : C:\Users\k.g\.condarc
populated config files : C:\Users\k.g\.condarc
conda version : 4.7.12
conda-build version : 3.18.8
python version : 3.7.3.final.0
virtual packages :
base environment : C:\Users\k.g\AppData\Local\Continuum\anaconda3 (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Users\k.g\AppData\Local\Continuum\anaconda3\pkgs
C:\Users\k.g\.conda\pkgs
C:\Users\k.g\AppData\Local\conda\conda\pkgs
envs directories : C:\Users\k.g\AppData\Local\Continuum\anaconda3\envs
C:\Users\k.g\.conda\envs
C:\Users\k.g\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.7.12 requests/2.22.0 CPython/3.7.3 Windows/10 Windows/10.0.17134
administrator : False
netrc file : None
offline mode : False
数组开始,将值放入两个不同的Set
集合中,然后遍历一组(无关紧要的是哪一个,我的例子是遍历int
)寻找两组中都存在项目,最后跟踪名为Set
的新第三组中的匹配项。
setOne
当我在本地运行时,这是输出:
itemsInBothSets
答案 2 :(得分:0)
参与其中的输入:
继续接受任意数量的输入,并且仅在输入显示“停止”或“结束”或类似内容时才停止
对于您的情况,最好使用arraylist
代替array
,因为您要输入x
(未知)数量的项目。以下程序接受用户的输入,直到输入-1
:
ArrayList<Integer> binList = new ArrayList<>();
System.out.println("Enter your codes:");
while (true) {
x = input.nextInt();
if (x == -1) break;
binList.add(x);
}
用于比较的部分:
我假设您已经创建了两个数组列表binList
和binList2
。我还假设您已经如上所述在两个arraylist中都输入了可变数量的项目。现在进行比较,使用以下代码:
for (int i = 0; i < binList.size(); i++) {
for (int j = 0; j < binList2.size(); j++) {
if(binList.get(i) == binList2.get(j)) {
System.out.print(binList.get(i) + " ");
}
}
}
请注意,size()
方法返回arraylist的大小。这是上述代码的示例输入和输出:
样本输入:
Enter your codes:
1 2 3 4 -1
Enter your codes:
2 4 5 7 9 -1
示例输出:
2 4