首页 > 编程语言 >【算法】Split()函数

【算法】Split()函数

时间:2024-12-19 18:56:47浏览次数:5  
标签:nextLine Java 函数 int s2 ++ 算法 Split sc

一、前言

        在Python,Java中常见。但我有次在Java中使用时,发现老是下标溢出。

PTA题目:

报错:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at Main.main(Main.java:17)

代码:

for (int i = 0; i < n; i++) {
    s[i]=sc.nextLine().split(" ");
}
for (int i = 0; i < m; i++) {
    s2[i]=sc.nextLine().split(" ");
}

二、解决

后面是发现split(" ") 会返回一个长度小于 5 的数组,导致后续访问 s[j][1] 等索引时发生越界。

就很没想到,因为自己也是最近才开始重拾Java,所以用得不熟练,也没有想到被这个背刺了哈

哈。最后改成了

for (int i = 0; i < n; i++) {
            for (int j = 0; j < 5; j++) {
                if (sc.hasNext()) {
                    s[i][j] = sc.next();
                } else {
                    s[i][j] = ""; // 填充默认值
                }
            }
        }
        //String[][] s2 = new String[m][3];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < 3; j++) {
                if (sc.hasNext()) {
                    s2[i][j] = sc.next();
                } else {
                    s2[i][j] = ""; // 填充默认值
                }
            }
        }

就运行通过了。对于Java中next nextLine 一次就用一种 然后熟练使用,遇到问题不要怕,解决了才是更重要的。

标签:nextLine,Java,函数,int,s2,++,算法,Split,sc
From: https://blog.csdn.net/m0_72696598/article/details/144510438

相关文章

  • 枚举思想——算法学习(一)
    枚举思想——算法学习(一)前言在算法学习的道路上,枚举思想是一种简单却强大的思想。作为一种暴力求解方法,枚举算法通过穷尽所有可能的解,从中找到满足条件的最优解或所有解。虽然它看似“低效”,但在解决许多实际问题时却显得直观且有效,尤其是在问题规模可控的情况下。(本文代码均......
  • 数据结构与算法Python版 插入排序与谢尔排序
    文章目录一、插入排序二、谢尔排序一、插入排序插入排序InsertionSort插入排序维持一个已排好序的子列表,其位置始终在列表的前部,然后逐步扩大这个子列表直到全表第1趟,子列表仅包含第1个数据项,将第2个数据项作为“新项”插入到子列表的合适位置中,这样已排序的......
  • 基于node的在线五子棋游戏算法bug怎么解决
    //检查各个方向是否符合获胜条件functioncheckDirection(i,j,p,q){//p=0,q=1水平方向;p=1,q=0竖直方向//p=1,q=-1左下到右上//p=-1,q=1左到右上letm=1letn=1letisBlack=obj.me?1:2for(;m<5;m++){//console.lo......
  • C语言基础-函数
    函数函数的概念函数:实现一定功能的,独立的代码模块,我们的函数一定是先定义,后使用使用函数的优势可以通过函数提供功能给别人使用,也可以使用别人提供的函数,减少代码量借助函数可以减少重复性的代码实现结构化(模块化)程序设计思想结构化设计思想:将大型的任务功能划分为相......
  • python的eval()函数的作用是将字符串转换成数值吗?
    不完全正确。Python的eval()函数的作用是将一个字符串作为Python表达式求值,并返回表达式的值。这意味着eval()可以处理各种数据类型和表达式,而不仅仅是将字符串转换成数值。例如:#将字符串转换为数值num_str="3+5"result=eval(num_str)print(result)#输出:8......
  • 智慧小区算法视频分析服务器关于视频监控中混合录像机接入网络和模拟的数量该怎么计算
    在现代安防监控系统中,合理配置和优化录像机的接入能力是确保监控系统高效运行的关键。随着技术的发展,混合录像机因其能够同时处理模拟和网络摄像机信号而受到广泛应用。以下是关于如何计算混合录像机接入模拟和网络摄像机数量的方法,以及视频智能分析技术在安防监控中的应用。一......
  • 微信小程序通过云函数动态推送客服消息
    如果你需要在特定时刻通过小程序后台发送消息给用户,可以使用 微信小程序客服消息API,结合云开发云函数完成推送。云函数调用示例云函数代码(sendCustomerMessage):constcloud=require('wx-server-sdk');constaxios=require('axios');//使用axios发送HTTP请求cl......
  • 数据结构与算法Python版 冒泡排序与选择排序
    文章目录一、冒泡排序二、选择排序一、冒泡排序冒泡排序BubbleSort对无序表进行多趟比较交换,每趟包括了多次两两相邻比较,并将逆序的数据项互换位置,最终能将本趟的最大项就位经过n-1趟比较交换,实现整表排序。每趟的过程类似于“气泡”在水中不断上浮到水面第1......
  • pycharm创建三个子图,分别绘制正弦函数,余弦函数,线性函数
    importnumpyasnp#导入快速绘图的函数库-pyplotimportmatplotlib.pyplotasplt#创建绘图对象figure#在【0,10】之间等距取1000个数字作为x的取值x=np.linspace(0,10,1000)y=np.sin(x)z=np.cos(x)k=x#创建子图-第一行左侧plt.subplot(221)#调用函数库pyp......
  • 解析Java中的Stream API:函数式编程与性能优化
        自Java8以来,Java语言引入了StreamAPI,为开发者提供了一种全新的数据处理方式。StreamAPI支持函数式编程风格,使得对集合、数组、IO流等数据源的操作更加简洁、直观且具有高效的性能优势。通过StreamAPI,我们可以在不修改原有数据结构的情况下,进行复杂的数据过滤、......