相关疑难解决方法(0)

Java Regex中matches()和find()之间的区别

我想明白之间的差别matches()find().

根据Javadoc(根据我的理解),matches()即使它找到了它正在寻找的东西,它也会搜索整个字符串,并find()在它找到它所寻找的内容时停止.

如果这个假设是正确matches()find(),除非你想要计算它找到的匹配数,否则我无法看到你想要使用的代替.

在我看来,String类应该具有find()而不是matches()作为内置方法.

总结一下:

  1. 我的假设是否正确?
  2. 何时使用matches()而不是find()

java regex

234
推荐指数
4
解决办法
19万
查看次数

如何只使用正则表达式匹配有效的罗马数字?

考虑到我的另一个问题,我决定甚至不能创建一个匹配罗马数字的正则表达式(更不用说将生成它们的无上下文语法)

问题是只匹配有效的罗马数字.例如,990不是"XM",它是"CMXC"

我为此制作正则表达式的问题是,为了允许或不允许某些字符,我需要回顾一下.例如,让我们花费成千上万.

我可以允许M {0,2} C?M(允许900,1000,1900,2000,2900和3000).但是,如果匹配在CM上,我不能允许跟随字符为C或D(因为我已经在900).

我怎样才能在正则表达式中表达这一点?
如果它在正则表达式中根本无法表达,它是否可以在无上下文语法中表达出来?

regex roman-numerals

152
推荐指数
6
解决办法
6万
查看次数

如何替换阿拉伯语等效字符串中的所有罗马数字?

我有一份所有莎士比亚十四行诗的清单,我正在制作一个搜索每个十四行诗的功能.但是,我希望能够使用阿拉伯数字搜索它们(例如"/ sonnet 122"..txt的格式如下:

I

This is a sonnet

II

This is a second sonnet
Run Code Online (Sandbox Code Playgroud)

我现在正在使用节点来尝试这样做,但是我从昨天起就一直在尝试无济于事.我昨天的最后一次尝试是使用'替换'方法:

'use strict';
//require module roman-numerals, which converts roman to arabic
var toArabic = require('roman-numerals').toArabic;
//require file-handling module
var fs = require('fs');

fs.readFile('sonn.txt', 'utf8', function (err,data) {
    if (err) {
        console.log(err);
    } else {
        var RN = /[A-Z]{2,}/g; 
        var found = data.match(RN); //finds all roman numbers and puts them in an array
        var numArr = [];
        for (var i = 0; i < found.length; i++ ){ …
Run Code Online (Sandbox Code Playgroud)

javascript

7
推荐指数
1
解决办法
398
查看次数

将罗马数字转换为阿拉伯语

我是Java的新手,我需要编写一个程序来将罗马数字转换为阿拉伯数字。

我不能使用某些功能,因为不允许更改乞讨或给定代码的结尾。我需要做所有的事情public static void main函数。

我开始在Google上搜索并开始编写代码。从现在开始,我只能将“一个字母”的数字(如X,I,V ...)转换为阿拉伯数字,但是我只能将其转换为复杂的数字(XI,CCC,IX,IV ...)。

有人能帮我吗?我真的是Java新手。这是我的第一门程序语言,我正努力理解它。

这是我的代码:

import java.util.Scanner;

class Roman {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int[] numbers = {1000, 500, 100, 50, 10, 5, 1 };
        String symbols = "MDCLXVI";

        /*******************************************
         * Complete your program
         *******************************************/

        System.out.print("Enter a roman numeral");
         final int MAX = 3999;
            Scanner keyb = new Scanner(System.in);
            String roman = keyb.next();
            roman=roman.toUpperCase();

            if(roman.matches(".*[0-9].*") || !roman.matches("[M|D|C|L|X|V|I]*")){
                System.out.println("Impossible to convert. Wrong roman numeral");
            } 

            int i …
Run Code Online (Sandbox Code Playgroud)

java roman-numerals

3
推荐指数
1
解决办法
3762
查看次数

罗马数字到数字转换

尝试编写程序以读取表示罗马数字(来自用户输入)的字符串,然后将其转换为阿拉伯语形式(整数).例如,I = 1,V = 5,X = 10等.

基本上,采用String类型参数的构造函数必须将字符串(来自用户输入)解释为罗马数字并将其转换为相应的int值.

除了正在进行的以下(还没有编译)之外,还有更简单的方法来解决这个问题:

import java.util.Scanner;

public class RomInt {
String roman;
int val;
void assign(String k)
{
  roman=k;
}

private class Literal
{
    public char literal;
    public int value;

    public Literal(char literal, int value)
    {
        this.literal = literal;
        this.value = value;
    }
}

private final Literal[] ROMAN_LITERALS = new Literal[]
        {
                new Literal('I', 1),
                new Literal('V', 5),
                new Literal('X', 10),
                new Literal('L', 50),
                new Literal('C', 100),
                new Literal('D', 500),
                new Literal('M', 1000)
        };

public …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
2万
查看次数

如何在java中添加罗马数字

我在计算机科学课程的编程工作中遇到了麻烦.该计划是添加罗马数字.我不知道如何开始实际添加罗马数字的代码并输出两个数字的总和:这是我目前为主程序的代码:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

/**
 * Class RomanNumeralCalculator - write a description of the class here
 * 
 * @author (your name) 
 * @version (a version number)
*/
public class RomanNumeralCalculator extends JFrame
{
   public static JPanel panel1, panel2, panel3, panel4;
   public static JLabel main1, main2, label1, label2,label3,label4,image;
   public static JTextField number1, number2;
   public static JTextArea output;
   public static JButton calculate,exit;
   public static String input="Enter"; 
   public static int position;
String num="";
public RomanNumeralCalculator()
{
    super ("Roman Numeral Calculator"); …
Run Code Online (Sandbox Code Playgroud)

java roman-numerals

1
推荐指数
1
解决办法
2505
查看次数

使用 javascript 对皇室名称进行排序

我想对皇室名字进行排序。对字母表的第一偏好。如果两个名字相同,那么我想按罗马数字排序。例如,如果输入是:King III、King II、Queen IX。(因为 1st 2 个字符串相同,它们需要按附加的罗马数字排序)所以预期输出:King II、King III、Queen IX。

我尝试将罗马数字存储在哈希图中并编写一个函数,将给定数组中的罗马数字替换为 King 2、King 3、Queen 9,然后尝试排序但无法正确实现。任何人都可以帮助我吗?

javascript arrays sorting

-1
推荐指数
1
解决办法
2206
查看次数

如何获取罗马数字字符串并将其转换为base10数字?

因此,我正在构建一个示例项目,该项目使用罗马数字并将其转换为以10为基数的数字。我试图使它起作用,但没有实现我的目标。有谁知道如何做到这一点?我将罗马数字加到10以下以供参考。谢谢!

1-I 2-II 3-III 4-IV 5-V 6-VI 7-VII 8-VIII 9-IX 10-X

string math ios swift

-6
推荐指数
1
解决办法
843
查看次数

标签 统计

java ×4

roman-numerals ×3

javascript ×2

regex ×2

arrays ×1

ios ×1

math ×1

sorting ×1

string ×1

swift ×1