1 java arrays algorithm linear-search
我正在尝试编写一个程序,让我输入 10 个字符并将它们存储在一个数组中。只需单个字符就足够了,例如 (d, s, a, e, h, j, e,)。然后让我使用线性搜索算法查找其中一个字符并给出数组中的位置。
我尝试对其进行编程,但只能使用整数进行编程。到目前为止,这是我的代码。
我不知道如何将其更改为字母/字符?
public static void main(String args[])
int c, n, search, array[];
Scanner in = new Scanner(System.in);
System.out.println("Enter number of elements");
n = in.nextInt();
array = new int[n];
System.out.println("Enter " + n + " Letters");
for (c = 0; c < n; c++)
array[c] = in.nextInt();
System.out.println("What letter do you want to find?");
search = in.nextInt();
for (c = 0; c < n; c++)
{
if (array[c] == search) /* Searching element is present */
{
System.out.println(search + " is present at location " + (c + 1) + ".");
break;
}
if (c == n) /* Searching element is absent */
System.out.println(search + " Letter is not found.");
Run Code Online (Sandbox Code Playgroud)
我尝试对其进行编程,但只能使用整数
in.next().charAt(0)不,如果您使用而不是in.nextInt()from ScannerClass 来采用第一种Character形式,则可以做到这一点String。
我不知道如何将其更改为字母/字符?
在这里,您不需要更改它或某些regex或split它,该方法in.next()从输入(最终使用)中获取字符串,然后获取charAt(0)第一个。
现在,我对您的代码进行了更改,以便按照您上面提到的方式工作:
search和更改array[]为char数据类型。array[]为array = new char[n]search将和 的输入更改array为in.next().charAt(0)。尝试这个:
public static void main(String args[]) {
int n,c;
char search,array[];
Scanner in = new Scanner(System.in);
System.out.println("Enter number of elements");
n = in.nextInt();
array = new char[n];
System.out.println("Enter " + n + " Letters");
for ( c = 0; c < n; c++) {
array[c] = in.next().charAt(0);
}
System.out.println("What letter do you want to find?");
search = in.next().charAt(0);
for ( c = 0; c < n; c++) {
if (array[c] == search) /* Searching element is present */ {
System.out.println(search + " is present at location " + (c + 1) + ".");
break;
}
if (c == n) /* Searching element is absent */ {
System.out.println(search + " Letter is not found.");
}
}
}
Run Code Online (Sandbox Code Playgroud)