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

为什么要获取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

  • Bootstrapping(引导) 是 Netty 中配置程序的过程,当你需要连接客户端或服务器绑定指定端口时需要使用 Bootstrapping。 如前面所述,Bootstrapping 有两种类型,一种是用于客户端的Bootstrap,一种是用于服务端的ServerBootstrap。不管程序使用哪种协议,无论是创建一个客户端还是服务器都需要使用“引导”。 面向连接 vs. 无连接 请记住,这