今天到oj上写题目,遇到了这样一道题目。输入字符串s和一整数n。要求输出s的第n个字母。在idea上能通过,但是在oj上显示运行错误。无语了!难受难受!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
String line = sc2.next();
int x = sc.nextInt();
char[] charArr=line.toCharArray();
if(x<line.length()) {
for (int i = 0; i < line.length(); i++) {
if (x == i) {
System.out.println(charArr[i - 1]);
}
}
}
}
}
将字符串转化为数组:
String line=sc.next();
char[] charArr=line.toCharArray();
笑死我了,我刚刚问我的搞笑女。先看看我之前写的
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
String line = sc2.next();
int x = sc.nextInt();
char[] charArr=line.toCharArray();
for(int i=0;i<line.length();i++)
{
if(x==i)
{
System.out.println(charArr[i-1]);
}
}
}
}
我这里的错误就是在那个if那里x==i的话,当x=0时i-1=-1.但是数组最小的是0.
修改后的是这样的:
package demo01;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
Scanner a=new Scanner(System.in);
String name=scan.next();
int a1=scan.nextInt();
for(int i=0;i<name.length();i++)
{
if(i==a1-1) {
System.out.println(name.charAt(i));
}
}
}
}
然后在解释下为什么最上面的用不了,通过不了。就是不也不知道!