我想连接两个两个字符串。
这是我的代码:
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
int i = 4;
double d = 4.0;
String s = "HackerRank ";
Scanner scan = new Scanner(System.in);
int a; double b; String c;
a = scan.nextInt();
b = scan.nextDouble();
c = scan.next();
System.out.println(i + a);
System.out.println(d + b);
String res = s.concat(c);
System.out.println(res);
scan.close();
}
}
输入:
12
4.0
is the best place to learn and practice coding!
此输出:
16
8.0
HackerRank is
我竭尽所能。
答案 0 :(得分:0)
编辑:
如果更改为nextLine()
,则先前的输入不会占用换行符,因此您必须添加额外的scan.nextLine();
。
首先,声明c
(即String c
),同时声明a
和b
(或者也许您这样做了,但是忘记了将其放在您的帖子中?)< / p>
但是,您的问题是使用Scanner::next
而不是Scanner::nextLine
。
.next()
来自docs:
从此扫描器中查找并返回下一个完整令牌。
.next()
采用第一个标记,使用空格作为定界符,因此这就是为什么您的输出为HackerRank is
的原因,假设您的c
持有is a great site
之类的东西。
解决方案
更改:
c = scan.next();
至c = scan.nextLine();
答案 1 :(得分:0)
你在这里..
public static void main(String[] args) {
int i = 4;
double d = 4.0;
String s = "HackerRank ";
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double b = scan.nextDouble();
scan.nextLine();
String c = scan.nextLine();
System.out.println(i + a);
System.out.println(d + b);
String res = s + c;
System.out.println(res);
scan.close();
}
}
那是因为Scanner.nextInt或nextDouble方法不占用最后一个 输入的换行符,因此换行在 下次调用Scanner.nextLine
答案 2 :(得分:0)
import java.util.*;
import java.lang.*;
import java.io.*;
class ScannerDemo
{
public static void main (String[] args) throws java.lang.Exception
{
int i = 4;
double d = 4.0;
String s = "HackerRank ";
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double b = scan.nextDouble();
scan.nextLine();
String c = scan.nextLine();
System.out.println(i + a);
System.out.println(d + b);
String res = s.concat(c);
System.out.println(res);
scan.close();
}
}
您的输入必须是
12
4.0
is the best place to learn and practice coding!
输出将是:
16 8.0 HackerRank is the best place to learn and practice coding!
答案 3 :(得分:0)
在扫描c之前再扫描一行。 像
scan.nextLine();
c = scan.nextLine();
由于在输入c之前按回车键,所以需要输入行。
答案 4 :(得分:-1)
int a = scan.nextInt();
double b = scan.nextDouble();
String c = scan.next();
您必须像我一样定义此变量