提问人:Super Coder 提问时间:5/18/2023 最后编辑:Super Coder 更新时间:5/18/2023 访问量:74
在字符串的特定位置查找字符
Finding character at particular location of String
问:
作为二项式扩展程序的一部分,我在输入的数字 + 变量上创建了一个 Scanner 类 (),在第一个项 (a in (a+b)n 上创建了另一个 () 类sc
scan
)
这是我到目前为止的程序:
import java.util.* ;
public class binomial_expansion
{
public static long factorial(long x)
{
long xf = x ;
for(long i = 1; i<=x ; i++)
{
xf*=i ;
}
return xf ;
}
public static double C(long n, long r)
{
double c = factorial(n)/(factorial(n-r)*factorial(r)) ;
return c ;
}
public static void main()
{
Scanner sc = new Scanner(System.in) ;
boolean error = false ;
String a = "" ;
do {
if(error)
{
System.out.println("Error; Please try again") ;
error = false ;
}
System.out.println("Enter a (separate single variable with space) : ") ;
a = sc.nextLine() ;
if(a=="") error = true ;
} while(error) ;
sc.close() ;
Scanner scan = new Scanner(a) ;
long x = scan.nextLong() ;
long x1 = scan.next().charAt(0) ;
}
}
使用“.next().charAt(index)”创建字符变量的问题在于字符串中不知道字符(单个变量)的索引号(整数的长度未知),并且必须省略用户输入的空格以分隔整数文本和字符文本。如何制作包含个位变量的字符变量?
答:
1赞
JustaNobody
5/18/2023
#1
您可以读取一个字符串,然后使用 stringtokenizer 用黑色空格分隔。然后使用 nextToken() 分别获取整数和变量。
Long.parseLong()
将字符串转换为长整型
import java.util.*;
class test{
public static void main(String args[]){
String str = "12 w";
StringTokenizer st = new StringTokenizer(str," ");
int x = Integer.parseInt(st.nextToken());
str=st.nextToken();
System.out.println(str+"-"+x);
}
}
这里我用的是int,你也可以用long
评论
1赞
Super Coder
5/18/2023
是的,StringTokeniser 类可以在这里使用,也可以使用 sc.substring
2赞
user16320675
5/18/2023
我更喜欢一个而不是 - 它用空格分隔,也可以解析整数(并且更新一点,或者不那么旧)Scanner
StringTokenizer
0赞
JustaNobody
5/19/2023
@user16320675是的,使用分隔符可以很好地替换 stringtokenizer
1赞
Reilas
5/18/2023
#2
你只需要一个来获取输入,你用 .Scanner
a = sc.nextLine()
从那里,找到空间的索引,并使用该方法派生每个值。String.substring
Scanner sc = new Scanner(System.in) ;
boolean error = false ;
String a = "" ;
do {
if(error)
{
System.out.println("Error; Please try again") ;
error = false ;
}
System.out.println("Enter a (separate single variable with space) : ") ;
a = sc.nextLine() ;
} while(error) ;
sc.close() ;
int indexOf = a.indexOf(' ');
long number = Long.parseLong(a.substring(0, indexOf));
char variable = a.charAt(indexOf + 1);
评论
1赞
user16320675
5/18/2023
a.substring(indexOf + 1).charAt(0)
将与 - 只是创建了更多的方法调用和中间体 ||在生产代码中,您还将检查是否不是...a.charAt(indexOf + 1)
String
indexOf
-1
0赞
Reilas
5/18/2023
@user16320675,你说得对,我忽略了这一点。我对我的答案进行了更改。
评论
error
x
for(long i = 1; i<=x ; i++)
x*=i
x
i
var xf = x
final long x