为了账号安全,请及时绑定邮箱和手机立即绑定

扫描器输入的子串

扫描器输入的子串

牧羊人nacy 2021-06-30 13:56:03
如何从扫描仪输入中获取子字符串?(在你评论说“重复”或“查找”之前,我有。我没有得到任何适用或在我目前允许在我的编程课程中使用的范围内的答案。)我试图让程序使用扫描仪类接受用户输入,然后打印出输入的一部分,但只打印尾端。在此示例中,我让扫描仪要求提供借记卡号码,并希望将输入打印回“**** **** **** nnnn”(nnnn 是来自扫描仪输入的数字)。这是我所拥有的:import java.util.Scanner;public class CyberlifePurchase{    public static void main(String[ ] args)    {        Scanner payment = new Scanner(System.in);        System.out.println("Please enter your debit card number: ");        String cardNumber = in.next();        System.out.println();           String concealedCardNumber = cardNumber.substring(15);        System.out.println("Card Number: " + "**** **** **** " + concealedCardNumber);当我编译所有内容时,没有编译错误,但是当我运行程序时,这是输入卡号后得到的结果(以 nnnn nnnn nnnn nnnn 格式):java.lang.StringIndexOutOfBoundsException: String index out of range: -11
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

你应该使用in.nextLine()而不是in.next()

nextScanner类中的method使用空格作为记号,只返回空格前的数据,因此可以使用nextLinemethod


查看完整回答
反对 回复 2021-07-14
?
烙印99

TA贡献1829条经验 获得超13个赞

  1. 如前所述,使用scanner.nextLine()代替scanner.next().

  2. 如果你想在字符串的最后一部分,是比较安全的使用是这样的: originalString.substring(originalString.length()-4);

将 4 替换为您要输出的实际字符数。检查原始字符串的长度是否大于您减去的数量(在上面的示例中为 4)也是明智的。


查看完整回答
反对 回复 2021-07-14
  • 3 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信