如何在Java中使用字符串函数解决此问题

时间:2019-01-01 12:53:28

标签: java

问题的链接:http://codeforces.com/contest/734/problem/A 以及我的代码有什么问题

我的代码:

import java.util.Scanner;
import java.lang.String;
public class Main
{

    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        String s=in.nextLine();
        int d=0;
        int a=0;
        for(int i=0;i<n;i++)
        {
            if(s.charAt(i)=='A')
                a++;
            else
                d++;
        }

        if(a>d)
            System.out.println("Anton");
        else if(a<d)
            System.out.println("Danik");
        else
            System.out.println("Friendship");
    }
}

2 个答案:

答案 0 :(得分:0)

Scanner.nextInt()方法不会在通过按Enter键创建的输入中读取换行符,因此请像下面那样更改代码,而不要使用nextInt();

Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
String s = in.nextLine();

这将解决问题

答案 1 :(得分:-1)

Scanner in =新的Scanner(System.in);不会读取换行符,因此我为读取的下一行创建了新对象,它将解决问题

public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    in = new Scanner(System.in);
    String s = in.nextLine();
    if (n == s.length()) {
        int d = 0;
        int a = 0;
        for (int i = 0; i < n; i++) {
            if (s.charAt(i) == 'A')
                a++;
            else
                d++;
        }

        if (a > d)
            System.out.println("Anton");
        else if (a < d)
            System.out.println("Danik");
        else
            System.out.println("Friendship");
    }
}