从数字中删除数字,但仅当我们选择第一个数字时才有效

时间:2018-12-29 22:47:38

标签: java

Enter a number: 1234
Enter a digit you want to remove: 2
New Number: 34

IM仅删除第二个数字,但同时也删除了第一个

试图更改方法

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
    @author Başar Ballıöz

    int x = 0;
    System.out.print("Enter a number ");
    x = input.nextInt();

    String number = Integer.toString(x);

    System.out.print("Enter a digit you want to remove: ");
    int a;
    a = input.nextInt();
    int new_number = Integer.parseInt(number.substring(a));

    System.out.print("New Number: " + new_number);
}

我想看看:

Enter a number: 1234
Enter a digit you want to remove: 2
New Number: 134

4 个答案:

答案 0 :(得分:1)

substring(a)的结果是从第(a + 1)位数字到末尾的字符串。
您需要将字符串分成两部分。
第一部分是从头到要删除的数字的字符串(不包括)
,第二部分是要删除的数字之后的字符串。
然后重新加入2个字符串:

System.out.print("Enter a digit you want to remove: ");
int a;
a = input.nextInt();
String newString = number.substring(0, a - 1) + number.substring(a);
int new_number = Integer.parseInt(newString);

通过这种方式删除第(a + 1)位数字。

答案 1 :(得分:1)

您可以使用replace,但它将替换所有出现的情况

  

返回一个新字符串,该字符串是通过用newChar替换此字符串中所有出现的oldChar的结果

replaceFirst 将仅替换首次出现的

  

用给定的替换替换该字符串的第一个子字符串,该子字符串与给定的正则表达式匹配。

int new_number = Integer.parseInt(number.replaceFirst(String.valueOf(a), ""));

答案 2 :(得分:0)

这是使用StringBuilder(字符的可变集合)的好地方。另外,我更喜欢在使用时声明和初始化变量。喜欢,

Scanner input = new Scanner(System.in);
System.out.print("Enter a number ");
int x = input.nextInt();
StringBuilder sb = new StringBuilder(Integer.toString(x));
System.out.print("Enter a digit you want to remove: ");
int a = input.nextInt();
int new_number = Integer.parseInt(sb.replace(a, a + 1, "").toString());
System.out.print("New Number: " + new_number);

答案 3 :(得分:0)

您可以使用可变的StringBuilder类。

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

            int x = 0;
            System.out.print("Enter a number ");
            x = input.nextInt();
            String number = Integer.toString(x);            
            StringBuilder sb = new StringBuilder(number);
            System.out.print("Enter a digit you want to remove: ");
            int a;
            a = input.nextInt();
            sb.deleteCharAt(a-1);  

            System.out.print("New Number: " + sb);
        }