当前位置: 首页 > 知识库问答 >
问题:

为什么要获取ArrayIndexOutOfBoundsException?

霍永年
2023-03-14

嗨,我不知道我做错了什么。I有一个字符串作为参数传递给my类。我必须拆分该字符串并将相应的值赋给成员变量,但它不能正常工作。

这是我的课。

    package virtusa;

public class pratice {
    
    String getName;
    Double getPrice;
    int getQuantity;
    String temp[]  = null;
    public pratice()
    {
        
    }
    public pratice(String rawInput)
    {
        temp = rawInput.split("$$##",2);
        getName = temp[0];
        getPrice = Double.parseDouble(temp[1]);
        getQuantity =Integer.parseInt( temp[2]);
    }
    public String getGetName() {
        return getName;
    }
    
    public Double getGetPrice() {
        return getPrice;
    }
    
    public int getGetQuantity() {
        return getQuantity;
    }


}
   package virtusa;

import java.util.Scanner;

public class demo {

    public static void main(String[] args) {
        
        Scanner in = new Scanner(System.in);
        String stub = in.nextLine();
        
        pratice temp  = new pratice(stub);
        System.out.println(temp.getName);
        System.out.println(temp.getQuantity);
        System.out.println(temp.getPrice);
        

    }

}

我的输入=Apple$$##12.5$$##9

我犯错了-

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
    at virtusa.pratice.<init>(pratice.java:17)
    at virtusa.demo.main(demo.java:12)

共有1个答案

龙正初
2023-03-14

String::Split将regex作为参数,因此$具有特殊的含义。您需要使用\转义它

 类似资料:
  • 使用取消所有通知。 它得到了例外的一些时间(大多数时间工作)。 在Andoid 6上: java.lang.SecurityException:权限拒绝:来自PID=22994,UID=10184的getCurrentUser()需要android.Permission.interact_across_users 在Android 5.0、4.4.2: ava.lang.SecurityExcep

  • 本文向大家介绍为什么要用 redis ?为什么要用缓存?相关面试题,主要包含被问及为什么要用 redis ?为什么要用缓存?时的应答技巧和注意事项,需要的朋友参考一下 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能: 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓

  • 我试图在Java做简单的聊天应用程序,但我得到这个错误。怎么了?我该怎么修好它?for循环中有一些错误? 我得到这个错误 线程“main”java.lang.IndexOutoFboundsException:索引0超出长度0的界限,位于java.base/jdk.internal.util.preconditions.OutoFbounds(preconditions.java:64)位于jav

  • 我们都喜欢 Rust 允许我们编写快速,安全的软件。但是为什么要编写异步代码呢? 异步代码允许我们在同一 OS 线程上,同时运行多个任务。在典型的线程应用程序中,如果您想同时下载两个不同的网页,则需要将工作分散到两个不同的线程中,如下所示: fn get_two_sites() { // Spawn two threads to do work. let thread_one = thre

  • 问题内容: 在有效的Java(第275页)中,有以下代码段: 捕获中断异常以重新引发它有什么用?为什么不让它飞呢? 问题答案: 简单的答案是,这是一个检查的异常,它不在方法(或方法)的签名中。所以你必须抓住它。一旦发现它,建议您设置为设置中断标志。除非您确实打算压缩中断。